【发布时间】:2013-12-05 06:02:50
【问题描述】:
我正在开发一个向 ListView 显示一些数据的应用程序。数据完美地显示在 ListView(自定义列表视图)中。我也使用了一个由 BaseAdapter 扩展的自定义适配器。当列表视图中有一些重复的记录时,我已经修改了我的应用程序以弹出一个自定义对话框。所以我的问题是自定义对话框中的项目(在列表视图中)不响应 onclick 监听器
这是我的代码(在适配器类中)
public void showDuplicateDialog(ArrayList<HashMap<String, String>> list){
AlertDialog.Builder alertDialogBuilder2 = new AlertDialog.Builder(activity);
LayoutInflater infl = activity.getLayoutInflater();
View view = infl.inflate(R.layout.dialog_list, null);
ListView lv = (ListView) view.findViewById(R.id.dialogList);
//NewsRowAdapter nw = new NewsRowAdapter(mContext, activity, R.layout.dialog_row, list);
SimpleAdapter sim = new SimpleAdapter(mContext, list, R.layout.dialog_row, new String[] { STIME,END, DATE }, new int[] {
R.id.stime2,R.id.etime2, R.id.blank2});
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
Toast.makeText(mContext, "item clicked ", Toast.LENGTH_LONG).show();
}
});
/*ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.two_line_list_item, android.R.id.text1, Names);*/
alertDialogBuilder2.setView(view);
alertDialogBuilder2.setAdapter(sim, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(mContext, "item clicked ", Toast.LENGTH_LONG).show();
}
})
.setPositiveButton("Accept", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(mContext, "Accepted", Toast.LENGTH_LONG).show();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
alertDialogBuilder2.show();
}
谁能告诉我问题出在哪里?
我也参考了开发人员说明.. 他们说下面的代码应该可以工作.. 但它根本没有响应..没有错误..没有异常..但不起作用
alertDialogBuilder2.setAdapter(sim, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(mContext, "item clicked ", Toast.LENGTH_LONG).show();
}
})
请帮帮我
【问题讨论】:
-
您的列表视图应该在您的自定义对话框的上下文中。试试这个
-
@AndroidHacker 你能进一步解释一下吗?
-
分享你的“dialog_list.xml”。你在那个 xml 文件上有任何按钮吗?如果是这样,它将捕获点击事件。
-
不,里面没有按钮...只有图像视图和一些文本视图...
标签: android listview customdialog