我在列表上工作,在这个列表中setOnItemLongClickListener编写代码部分,用户长按打开对话框但是对话框没有打开?请发送任何打开对话框的建议?
listshipments.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener()
{
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id)
{
view.setSelected(true);
TextView tv = (TextView) view.findViewById(R.id.txtName);
String shipmenttxt = tv.getText().toString();
int b=delete_Message("Delete ", "Do you want delete shipment id", "Delete", "Cancel",shipmenttxt,position);
if(b==1){
this.mList.remove(position);
adapter.notifyDataSetChanged();
}
return true;
}
});
@SuppressWarnings("deprecation")
private int delete_Message(String sTitle,String sMessage,String sButton1_Text,String sButton2_Text,final String msg,final int position)
{
try {
alertDialog = new AlertDialog.Builder(getParent()).create();
alertDialog.setTitle(sTitle);
alertDialog.setIcon(R.drawable.info);
alertDialog.setMessage(sMessage);
alertDialog.setButton(sButton1_Text, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
aa=1;
delete(msg);
//new LoadDatashipment().execute();
return ;
} });
alertDialog.setButton2(sButton2_Text, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
aa=0;
//return;
}});
alertDialog.show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return aa;
}
答案 0 :(得分:3)
如果列表中的任何行项包含可聚焦或可点击的视图,则您的点击侦听器可能无法正常工作
您必须将此行放在自定义listviews row_item.xml文件中
即android:descendantFocusability="blocksDescendants"
例如:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:descendantFocusability="blocksDescendants"
//other layout info here .....
>
</LinearLayout>
我认为你需要做的就是在显示你的对话之前
alertD = alertDialog.create();
并显示
alertD.show();
点击此处查看 http://www.mkyong.com/android/android-alert-dialog-example/
答案 1 :(得分:0)
试试这段代码:
listshipments.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
view.setSelected(true);
TextView tv = (TextView) view.findViewById(R.id.txtName);
String shipmenttxt = tv.getText().toString();
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
//TODO Yes button clicked
this.mList.remove(position);
adapter.notifyDataSetChanged();
break;
case DialogInterface.BUTTON_NEGATIVE:
//TODO No button clicked
dialog.dismiss();
break;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(Main.this);
builder.setMessage("Extract " + rarListView.getItemAtPosition(arg2).toString() + " \n to '" + Environment.getExternalStorageDirectory().toString() + "/AndRar/' folder?")
.setPositiveButton("Yes", dialogClickListener)
.setNegativeButton("No", dialogClickListener)
.show();
return true;
}
});