有没有办法在 PreferenceActivity 之外的 EditTextPreference 中进行对话? 假设我希望此对话框出现在我的主活动中的按钮单击上。
我尝试使用自定义布局构建 Dialog ,但我不知道如何使其与 EditTextPreference 完全相同。
答案 0 :(得分:2)
当然,您基本上只需要AlertDialog
作为子视图EditText
。
简短的例子:
AlertDialog.Builder adb = new AlertDialog.Builder(this);
final EditText input = new EditText(this);
adb.setTitle("My title");
adb.setView(input);
adb.setPositiveButton("Ok", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String inputText = input.getText().toString();
// Do something with the input here
}
});
adb.setNegativeButton("Cancel", null);
adb.show();
您在此处所做的只是在代码中创建EditText
实例,并通过setView()
将其设置为对话框内容。只需将其设为最终版,以便您可以在此示例中从匿名OnClickListener
访问它。当然你可以稍微重构一下,但我认为它已经非常方便了。
this
在此处引用Context
。由于您从Activity
(扩展Context
)调用对话框,因此您应该没问题。