在我的ListView中,我有这两种方法,它们可以工作,但直到其中一个列表项被按下一次。所以,当我第一次按下/按住某个项目时没有任何反应,但是下次我按下/按住某个项目时它会完美运行。
这是我的onListItemClick方法
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) {
File file = new File(path.get(position));
longClick(file);
Log.d(TAG, "onItemLongClick");
return true;
}
});
getListView().setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position ,long id) {
File file = new File(path.get(position));
player(file);
Log.d(TAG, "onItemClick");
};
});
}
答案 0 :(得分:1)
您在setOnItemLongClickListener
内设置了setOnItemClickListener
和onListItemClick
,因此在您第一次按下ListItem之前,它们不会触发。
您需要做的是onListItemClick
之外的此代码。
getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) {
File file = new File(path.get(position));
longClick(file);
Log.d(TAG, "onItemLongClick");
return true;
}
});
getListView().setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position ,long id) {
File file = new File(path.get(position));
player(file);
Log.d(TAG, "onItemClick");
};
});