Android 对话框和浮动Activity
2010-08-14 00:32:00 来源:WEB开发网核心提示:Dialog implements OnClickListener { private Button okButton; private Button cancelButton; private EditText nameEditText; protected void onCreate(Bundle savedIns
Dialog implements OnClickListener { private Button okButton; private Button
cancelButton; private EditText nameEditText; protected void onCreate(Bundle
savedInstanceState) { okButton = (Button) findViewById(R.id.okButton);
cancelButton = (Button) findViewById(R.id.cancelButton); nameEditText =
(EditText) findViewById(R.id.nameEditText); okButton.setOnClickListener(this);
cancelButton.setOnClickListener(this); } public void onClick(View view) { switch
(view.getId()) { case R.id.okButton: dismiss(); break; case R.id.cancelButton:
cancel(); break; } } }
在对话框关闭时,对话框类的dismiss()方法将会被调用,该方法可以被对话框自身调用,也可以被其他外部代码调用。对话框支持“取消”功能,“取消”的含义是指不再需要执行对话框上的任何功能和动作。对话框的取消可以通过调用cancel()方法来实现。取消对话框也将会自动调用dismiss()方法。当用户点击手机设备上的“返回”按钮时,屏幕上的对话框将会被取消,如果你想让你的对话框不在这种情况下被取消掉的话,你可以如下设置你的对话框:
setCancelable(false);
对话框的取消和关闭事件可以通过OnCancelListener和OnDismissListener两个监听器来被监听处理。 从对话框中返回信息:
现在,到了我们要从对话框上获取用户输入的值,将它返回到主调的Activity中的时候了。然而,
Dialog类并没有提供可以直接返回这些值的方法…但是,我们可以使用自己创建的监听类: public interface MyDialogListener {
public void onOkClick(String name); public void onCancelClick(); }
我们的对话框类的构造方法同时需要作一点小小的修改: public MyDialog(Context context, MyDialogListener
listener) { super(context); this.listener = listener; }
接着,你就得在创建这个对话框的时候提供一个已经实现了MyDialogListener这接口的监听器实现对象了。然后,我们要在对话框的onclick方法中传出这个值:
public void onClick(View view) { switch (view.getId()) { case R.id.okButton:
listener.onOkClick(nameEditText.getText().toString()); dismiss(); break; case
R.id.cancelButton: cancel(); break; } } 使用AlertDialog:
AlertDialog类是Dialog类的子类。它默认提供了3个按钮和一个文本消息。这些按钮可以按需要来使他们显示或隐藏。下列代码将创建一个AlertDialog对话框,对话框上将向用户展示一个问题以及备选的yes/no答案:
更多精彩
赞助商链接