안드로이드 개발 질문/답변
(글 수 45,052)
Home.java
String result = UIUtil.showEditTextDialog(this, "앨범 추가");
Log.e("###result", result);
UIUtil.java
public static String showEditTextDialog(Context context, String title)
{
final String result = null;
try
{
if (dialog != null && dialog.isShowing())
dialog.dismiss();
final EditText input = new EditText(context);
input.requestFocus();
dialog = new AlertDialog.Builder(context).setTitle(title)
.setView(input)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
// final 로컬 변수 result를 지정할 수 없습니다. 엔클로징 유형으로 정의되었기 때문입니다
result = input.getText().toString();
}
})
.setNegativeButton(R.string.cancel, null).show();
} catch (Exception e)
{
}
return result;
}
----------------------------------------------------------
다이얼로그안에 있는 edit text에서 입력한 값만 받고 싶은데, 좋은 방법 없나요?
2011.04.06 13:31:49
[자답] 제 머리로는 이게 한계네요 ㅠㅠ
public class Home extends Activity
{
EditText edit;
public void onMoney(View v)
{
edit = new EditText(this);
UIUtil.showEditTextDialog(this, "앨범 추가", edit, mListener);
}
DialogInterface.OnClickListener mListener = new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface arg0, int arg1)
{
Log.e("###result", edit.getText().toString());
}
};
}
UIUtil.java
public static void showEditTextDialog(Context context, String title, EditText input, DialogInterface.OnClickListener listener)
{
try
{
if (dialog != null && dialog.isShowing())
dialog.dismiss();
input.requestFocus();
dialog = new AlertDialog.Builder(context).setTitle(title)
.setView(input)
.setPositiveButton(R.string.ok, listener)
.setNegativeButton(R.string.cancel, null).show();
} catch (Exception e)
{
}
}



