Android 如何在单击DialogFragment的适配器后使其可见?
我有一个Android 如何在单击DialogFragment的适配器后使其可见?,android,Android,我有一个DialogFragment和相关的simpledapter来监听点击。当我点击列表视图中的任何项目时,对话框片段会自动关闭。如何使其可见 public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(getResources().
DialogFragment
和相关的simpledapter
来监听点击。当我点击列表视图
中的任何项目时,对话框片段
会自动关闭。如何使其可见
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(getResources().getString(R.string.choose_file_for_import));
mAdapter = new MAdapter(getActivity(), R.id.file_explorer_tv_filename, itemsList);
builder.setAdapter(mAdapter, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int position) {
File file = new File(pathList.get(position));
getDir(pathList.get(position));
mAdapter.notifyDataSetChanged();
}
return builder.create();
}
您有两个选择:不要在
Builder.create()之后使用AlertDialog.Builder或设置OnClickListener
在builder.create()之后设置侦听器
将带有OnClickListener
的适配器设置为null
builder.setAdapter(mAdapter, null);
在builder.create()之后指定OnItemClickListener
AlertDialog dialog = builder.create();
dialog.getListView().setOnItemClickListener(...);
我必须承认,我没有测试过它,我只是查看了Android源代码。你有两个选择:
不要在Builder.create()之后使用AlertDialog.Builder或设置OnClickListener
在builder.create()之后设置侦听器
将带有OnClickListener
的适配器设置为null
builder.setAdapter(mAdapter, null);
在builder.create()之后指定OnItemClickListener
AlertDialog dialog = builder.create();
dialog.getListView().setOnItemClickListener(...);
我必须承认我没有测试它,我只是查看了Android源代码。您可以尝试使用而不是setAdapter()
。从文件中:
适配器
用于提供项目列表的ListAdapter
checkedItem
指定要选中的项目。如果-1,则不检查任何项目
listener
单击列表中的项目时通知。对话框将显示
单击某个项目时,不能将其取消。它只会被驳回
如果单击按钮,如果没有提供按钮,则由
用户关闭该对话框
因此,它应该按照您想要的方式工作,只需使用-1作为checkedItem
参数。您可以尝试使用而不是setAdapter()
。从文件中:
适配器
用于提供项目列表的ListAdapter
checkedItem
指定要选中的项目。如果-1,则不检查任何项目
listener
单击列表中的项目时通知。对话框将显示
单击某个项目时,不能将其取消。它只会被驳回
如果单击按钮,如果没有提供按钮,则由
用户关闭该对话框
因此,它应该按照您想要的方式工作,只需使用-1作为checkedItem
参数。您需要覆盖addapter的getView,并在单击侦听器时侦听视图,在该侦听器内返回false,这样它将告诉系统没有人处理此触摸事件
检查此项。您需要覆盖addapter的getView,并侦听视图onClick侦听器,在该侦听器中返回false,这样它将告诉系统没有人处理此触摸事件
检查此项。builder.setCancelable(false)?@blackbelt否,此项无效。请尝试builder.create().setCanceledOnTouchOut(false)
@mmohsinNaeem没有这样的方法。你尝试过这个吗?查看此生成器。setCancelable(false)?@blackbelt否,这不起作用。请尝试builder.create()。setCanceledOnTouchOut(false)
@mmohsinNaeem没有这样的方法。你尝试过这个吗?看到这个,我会试试看,请同时指定您的确切位置。行:921 imho,我认为我的答案更好,因为它不依赖于未记录的行为:)我会试试看,请同时指定您的确切位置。行:921 imho,我认为我的答案更好,因为它不依赖于未记录的行为:)