문제점
다이얼로그에서 버튼을 클릭하면 닫히는 것을 막으려고 한다.참고사이트
해결방안
기존 리스너는 버튼만 만들어주고 AlertDialog 객체를 통해 오버라이딩해서 사용한다.
그리고 아래 조건문을 통해 dimiss()를 제어한다.
코드
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvName = (TextView) findViewById(R.id.tvName); btnClick = (Button) findViewById(R.id.btnClick); btnClick.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { dialogView = (View) View.inflate(asdasd.this, R.layout.dialog, null); AlertDialog.Builder builder = new AlertDialog.Builder( asdasd.this); builder.setMessage("Test input data"); builder.setView(dialogView); builder.setPositiveButton("ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); builder.setNegativeButton("clear", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); final AlertDialog dialog = builder.create(); dialog.show(); dlg_edt_name = (EditText) dialogView .findViewById(R.id.dlg_edt_name); dialog.getButton(AlertDialog.BUTTON_POSITIVE) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Boolean wantToCloseDialog = true; tvName.setText(dlg_edt_name.getText()); if (wantToCloseDialog) dialog.dismiss(); } }); dialog.getButton(AlertDialog.BUTTON_NEGATIVE) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Boolean wantToCloseDialog = false; dlg_edt_name.setText(""); if (wantToCloseDialog) dialog.dismiss(); } }); } }); }
'대학 생활 > Android' 카테고리의 다른 글
[Android] Google Maps Android API v2 (구글 맵) 사용하기 (0) | 2014.06.05 |
---|---|
[Android] 뒤로(백버튼) 두 번 종료하기 (0) | 2014.06.05 |
[Android] 아이콘 사이즈 (launcher icon size) (0) | 2014.05.30 |
[Android] 이미 버전 코드가 1인 APK가 있으므로 다른 버전 코드를 사용해야 합니다. (0) | 2014.05.30 |