我有一个listView和一个onClickListener,onClick做了som的东西,它的工作原理。现在我想在LongClick上显示一个AlertDialog,但没有任何反应。我已经将android:longClickable="true"
添加到了清单中的ListView,但仍然没有任何反应。
listView.setOnLongClickListener(new OnLongClickListener() {
public boolean onLongClick(View v) {
final CharSequence[] items = {"Revansch!", "Lägg till som vän","Ta bort spelet"};
AlertDialog.Builder builder = new AlertDialog.Builder(ChallengeList.this);
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
alert.show();
return true;
}
});
任何人都知道它为什么不起作用? 提前谢谢!
答案 0 :(得分:4)
试试这个,
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> av, View v, int pos, final long id) {
final CharSequence[] items = {"Revansch!", "Lägg till som vän","Ta bort spelet"};
AlertDialog.Builder builder = new AlertDialog.Builder(ChallengeList.this);
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
alert.show();
return true;
}
});
答案 1 :(得分:0)
我试过这个。它的工作。
myList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> av, View v, int pos, long id) {
return onLongListItemClick(v,pos,id);
}
protected boolean onLongListItemClick(View v, final int pos, long id) {
// write code for AlertDialog
return true;
}
});
您还需要覆盖onItemLongClick方法。