We also implement OnCancelListener and OnDismissListener to handle the cancel and dismiss events.
Modify the main activity in the last article "Custom dialog, with data passed in Bundle".
package com.AndroidCustomDialog;
import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.DialogInterface.OnDismissListener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class AndroidCustomDialogActivity extends Activity {
EditText editTextPass;
Button buttonOpenDialog;
String KEY_TEXTPSS = "TEXTPSS";
static final int CUSTOM_DIALOG_ID = 0;
TextView dialog_TextView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editTextPass = (EditText)findViewById(R.id.textpass);
buttonOpenDialog = (Button)findViewById(R.id.opendialog);
buttonOpenDialog.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Bundle bundle = new Bundle();
bundle.putString(KEY_TEXTPSS, editTextPass.getText().toString());
showDialog(CUSTOM_DIALOG_ID, bundle);
}});
}
@Override
protected Dialog onCreateDialog(int id) {
Dialog dialog = null;
switch(id) {
case CUSTOM_DIALOG_ID:
dialog = new Dialog(AndroidCustomDialogActivity.this);
dialog.setContentView(R.layout.dialoglayout);
dialog.setTitle("Custom Dialog");
dialog_TextView = (TextView)dialog.findViewById(R.id.dialogtext);
Button dialog_OK = (Button)dialog.findViewById(R.id.dialog_ok);
dialog_OK.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(AndroidCustomDialogActivity.this,
"Dismiss by OK button",
Toast.LENGTH_LONG).show();
dismissDialog(CUSTOM_DIALOG_ID);
}});
Button dialog_Cancel = (Button)dialog.findViewById(R.id.dialog_cancel);
dialog_Cancel.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(AndroidCustomDialogActivity.this,
"Dismiss by Cancel button",
Toast.LENGTH_LONG).show();
dismissDialog(CUSTOM_DIALOG_ID);
}});
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
dialog.setOnCancelListener(new OnCancelListener(){
@Override
public void onCancel(DialogInterface dialog) {
// TODO Auto-generated method stub
Toast.makeText(AndroidCustomDialogActivity.this,
"OnCancelListener",
Toast.LENGTH_LONG).show();
}});
dialog.setOnDismissListener(new OnDismissListener(){
@Override
public void onDismiss(DialogInterface dialog) {
// TODO Auto-generated method stub
Toast.makeText(AndroidCustomDialogActivity.this,
"OnDismissListener",
Toast.LENGTH_LONG).show();
}});
break;
}
return dialog;
}
@Override
protected void onPrepareDialog(int id, Dialog dialog, Bundle bundle) {
// TODO Auto-generated method stub
super.onPrepareDialog(id, dialog, bundle);
switch(id) {
case CUSTOM_DIALOG_ID:
dialog_TextView.setText("Text passed to Dialog: " + bundle.getString(KEY_TEXTPSS));
break;
}
}
}

0 Response to "Cancel and Dismiss Custom dialog"
Posting Komentar