Sco*_*son 3 android android-dialog android-dialogfragment
我有一个包含项目列表的对话框片段。默认情况下,当您触摸某个项目时,对话框会关闭。此时如何防止解雇?(我想在稍后阶段以编程方式关闭对话框)
我正在按照此处的指示关注代码示例:https : //developer.android.com/guide/topics/ui/dialogs.html
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.pick_color)
.setItems(R.array.colors_array, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
return builder.create();
}
Run Code Online (Sandbox Code Playgroud)
我看到有一个选项可以使用builder.setSingleChoiceItems
而不是builder.setItems()
,这会给我我想要的行为,但不是风格。(它带有单选按钮,我不想要)
ListView
在创建对话框之后设置一个监听器,如下所示:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
final AlertDialog dialog = builder.setTitle("My dialog")
.setItems(new String[]{"Do nothing...", "Dismiss!"}, null) // any listener will do!
.create();
// add this listener after dialog creation to stop auto dismiss on selection
AdapterView.OnItemClickListener listener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch(position) {
case 0:
// do nothing selected
break;
case 1:
// dismiss selected
dialog.dismiss();
break;
}
}
};
dialog.getListView().setOnItemClickListener(listener);
return dialog;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
675 次 |
最近记录: |