728x90
환경 정보
Android API 23 (Android 6.0) Android Studio 1.5.1. |
이 글의 목표는 아래와 같이 유난히 긴 EditText를 상위 Text와 같이 align을 맞춰 줄여주는 것이다.
. EditText의 길이가 짧아졌다.
[Before] |
[After] |
|
|
Dialog에 EditText를 추가하는 코드를 구해서 코드에 추가하였다.
AlertDialog.Builder alert = new AlertDialog.Builder(CategoryActivity.this); alert.setTitle("Add Box"); // Set an EditText view to get user input final EditText input = new EditText(CategoryActivity.this); alert.setView(input); alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { String value = input.getText().toString(); //value.toString(); helper_category.insert(value); // Do something with value! refreshCategory(); } }); alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { // Canceled. } }); alert.show();
위와 같이 코드를 추가하니 아래와 같이 Dialog UI가 나타났다.
위에서 보듯이 EditText 의 칸이 양옆으로 끝까지 뻗어 있어 예뻐 보이지 않았다.
그래서 EditText에 margin 혹은 padding 을 주어서 좀 칸안으로 줄여 보고자 하였다.
구글링을 해보면 여러가지 방법이 있었지만 나 같은 경우는 동작하지 않았고, 결국은 Dialog UI를 XML로 분리하고 LinearLayout을 이용해 구현하였다.
1. Dialog XML 을 선언해준다
XML내의 EditText에서 layout_marginLeft, layout_marginRight를 20dp로 정의해 주었다.
res\layout\addboxdialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingRight="10dp"
android:layout_marginRight="10dp"
android:orientation="vertical">
<EditText
android:id="@+id/addboxdialog"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
2. Java Code는 다음과 같다.
EditText를 Code상에서 호출하여 setView를 하지 않고 R.layout.addboxdialog (xml)을 setView로 호출하였다.
AlertDialog.Builder alert = new AlertDialog.Builder(CategoryActivity.this); alert.setTitle("Add Box"); alert.setView(R.layout.addboxdialog); alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { Dialog f = (Dialog) dialog; EditText input = (EditText) f.findViewById(R.id.addboxdialog); String value = input.getText().toString(); //value.toString(); helper_category.insert(value); // Do something with value! refreshCategory(); } }); alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { // Canceled. } }); AlertDialog dialog = alert.create(); dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); alert.show();
728x90
'Android' 카테고리의 다른 글
Android - Intent (인텐트) (0) | 2016.02.26 |
---|---|
Android - Preferences (Data의 저장) (0) | 2016.02.24 |
[Galaxy S6] 롤리팝 (Lollipop)에서 마시멜로우 (Marshmallow)로. (0) | 2016.02.22 |
Android - 권한 정보 (Permission) 확인 및 권한 제거 (0) | 2016.02.19 |
Android - Inflater (0) | 2016.02.01 |
Android Studio 그리고 adb (0) | 2016.01.30 |
Android - Toolbar icon 추가/생성하기 (0) | 2016.01.29 |
Android - Widget (위젯) 기본 생성 (0) | 2016.01.27 |