我创建了一个显示项目列表的对话框。
现在我还需要捕获长按事件以进行编辑。
这怎么可能成就?
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.select_a_person);
final UserAdapter adapter = new UserAdapter(this);
builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
selecteduUser = (User) adapter.getItem(which);
if (selecteduUser != null) {
mName.setText(selecteduUser.getName());
}
}
});
builder.create().show();
答案 0 :(得分:0)
目前我正在看两个解决方案
选项1:
创建自己的自定义对话框。使用列表视图(或任何您喜欢的listactivity)创建活动,并将其设置为对话框。
android:theme="@android:style/Theme.Dialog"
您可以轻松处理列表项单击。然后在启动此自定义对话框活动时,传递要显示的列表数据。
选项2:
在您的方法中的alertdialog中设置setOnShowListener。让我从你的最后一行代码编辑
AlertDialog dialog = builder.create();
dialog.setOnShowListener(new OnShowListener()
{
@Override
public void onShow(DialogInterface dialog)
{
ListView list = ad.getListView();
list.setOnItemLongClickListener(new OnItemLongClickListener()
{
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id)
{
// DO your task
return true;
}
});
}
});
dialog.show();