1

在我的 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");
        };
    });
}
4

1 回答 1

1

您正在设置setOnItemLongClickListenersetOnItemClickListener内部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");
        };
    });
于 2013-05-13T13:07:01.193 回答