我有一个简单的程序来显示一个对话框,其中包含一个edittext视图,并听取正/负按钮,在每个按钮中执行自定义操作(读取该edittext并将其内容保存到活动变量).
当我看不到从对话框界面恢复当前对话框的任何方法时出现问题(然后,我无法恢复对话框中的任何视图).
可能这是一个菜鸟问题,但经过一些谷歌搜索,我没有人回答它.
我的代码如下
LayoutInflater li = LayoutInflater.from(this);
View myView = li.inflate(R.layout.my_layout, null);
AlertDialog.Builder cDialog = new AlertDialog.Builder(this);
cDialog.setView(myView);
cDialog.setPositiveButton(R.string.start_download, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//here the code to retrieve dialog
}
});
cDialog.create();
Run Code Online (Sandbox Code Playgroud)
关于我在哪里可以找到的任何线索?
Luk*_*rog 72
你可从该视图Dialog中onClick()有:
EditText edit = (EditText) ((AlertDialog) dialog).findViewById(R.id.the_id_of_view);
Run Code Online (Sandbox Code Playgroud)
use*_*r23 14
这种方式在我的代码中运行完美:
public void onClick(DialogInterface dialog, int which) {
Dialog dialog2 =Dialog.class.cast(dialog);
EditText edit = (EditText) dialog2.findViewById(R.id.myedittext);
}
Run Code Online (Sandbox Code Playgroud)
干杯
Ani*_*kur 11
您已经引用了包含编辑文本的视图.为什么不直接使用它?只需确保将视图设为最终,以便您可以在OnClickListener匿名类中访问它.
LayoutInflater li = LayoutInflater.from(this);
final View myView = li.inflate(R.layout.my_layout, null);
// don't forget to mark myView as final
AlertDialog.Builder cDialog = new AlertDialog.Builder(this);
cDialog.setView(myView);
cDialog.setPositiveButton(R.string.start_download, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//here the code to retrieve dialog
EditText edit = (EditText) myView.findViewById(R.id.the_id_of_view);
}
});
cDialog.create();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40672 次 |
| 最近记录: |