2013-05-13 2 views
1

В моем ListView у меня есть эти два метода, и они работают, но только до тех пор, пока один из элементов списка не будет нажат один раз. Таким образом, ничего не происходит в первый раз, когда я нажимаю/удерживаю элемент, но в следующий раз, когда я нажимаю/удерживаю элемент, он работает отлично.onItemClick и onItemLongНажмите, чтобы не стрелять в 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"); 
     }; 
    }); 
} 

ответ

1

Вы настраиваете setOnItemLongClickListener и setOnItemClickListeneronListItemClick внутри, поэтому они не будут стрелять, пока вы не нажмете 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"); 
     }; 
    }); 
+0

У меня возникают некоторые ошибки, когда я копирую их непосредственно в свой список. Извините, я довольно новичок в java/android. Должен ли этот код находиться внутри метода? Или мне нужно немного изменить его, потому что я использую ListActivity? – Moez

+0

Код должен быть внутри 'onCreate()' после 'setContentView (...);' –

+0

Awesome! большое спасибо – Moez

Смежные вопросы