[#117][안드로이드] AlertDialog에 EditText 넣기, EditText margin으로 길이 줄이기
[안드로이드] AlertDialog에 EditText 넣기, EditText margin으로 길이 줄이기
1. EditText 생성 : final EditText et = new EditText(getContext());2. AlertDialog.Builder 생성 및 setting
: EditText 넣는 부분 setView(et)
final EditText et = new EditText(getContext());
final AlertDialog.Builder alt_bld = new AlertDialog.Builder(getContext(),R.style.MyAlertDialogStyle);
alt_bld.setTitle("닉네임 변경")
.setMessage("변경할 닉네임을 입력하세요")
.setIcon(R.drawable.check_dialog_64)
.setCancelable(false)
.setView(et)
.setPositiveButton("확인", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String value = et.getText().toString();
user_name.setText(value);
}
});
AlertDialog alert = alt_bld.create();
alert.show();
| cs |
이렇게 한 후 문제점.
EditText 길이가 너무 길다 => Margin 속성 필요
FrameLayout container = new FrameLayout(getContext());
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = getResources().getDimensionPixelSize(R.dimen.dialog_margin);
params.rightMargin = getResources().getDimensionPixelSize(R.dimen.dialog_margin);
et.setLayoutParams(params);
container.addView(et);
final AlertDialog.Builder alt_bld = new AlertDialog.Builder(getContext(),R.style.MyAlertDialogStyle);
alt_bld.setTitle("닉네임 변경").setMessage("변경할 닉네임을 입력하세요").setIcon(R.drawable.check_dialog_64).setCancelable(
false).setView(container).setPositiveButton("확인",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String value = et.getText().toString();
user_name.setText(value);
}
});
AlertDialog alert = alt_bld.create();
alert.show();
| cs |
2. params에 margin 추가 : params.leftMargin , params.rightMargin
3. EditText에 params 속성 적용하기 : et.setLayoutParams(params);
4. FrameLayout에 EditText 추가하기 : container.addView(et);
5. AlertDialog에 적용하기 : setView(container)
**params에 적용한 R.dimen.dialog_margin
생성 경로 : main/res/values/dimen.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="dialog_margin">25dp</dimen>
</resources>
| cs |
**dialog custom R.style.MyAlertDialogStyle style
생성 경로 : main/res/values/style.xml
<resources>
<!-- Base application theme. -->
<style name="MyAlertDialogStyle" parent="@style/Theme.AppCompat.Dialog.Alert">
<item name="android:textColor">@color/white</item>
<item name="android:typeface">monospace</item>
<item name="android:background">@color/maincolor</item>
</style>
</resources>
| cs |
결과물
댓글
댓글 쓰기