Android setOnItemClickListener - PullRequest
       0

Android setOnItemClickListener

2 голосов
/ 19 апреля 2011

Я не могу запустить " OnItemClickListener ".

Вы можете увидеть мой фрагмент кода

 ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.main, new String[] { "title"}, new int[] { R.id.item_title});
    setListAdapter(adapter);

    final ListView lv = getListView();
    lv.setTextFilterEnabled(true);

    lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {              
            @SuppressWarnings("unchecked")
            HashMap<String, String> o = (HashMap<String, String>) lv.getItemAtPosition(position);                   
            Toast.makeText(TopNewsActivity.this, "ID '" + o.get("id") + "' was clicked.", Toast.LENGTH_LONG).show(); 

        }
    });

после setListAdapter, в который переходит мой отладчик " lv.setOnItemClickListener", но затем не попадает в цикл и выходит.

Я хочу, чтобы ссылки Clickable любезно помогли.

Ответы [ 3 ]

8 голосов
/ 19 апреля 2011

Наиболее вероятной причиной является то, что ваши элементы ListView содержат либо фокусируемые, либо интерактивные представления.Если представление содержит фокусируемый или кликабельный элемент, OnItemCLickListener вызываться не будет.(Вместо этого будут вызываться собственные обработчики кликов в интерактивном представлении).

Нажмите здесь для получения дополнительной информации.См. Мой предыдущий ответ здесь или дополнительную информацию здесь .

Попробуйте его с очень простым макетом ListItem - он должен работать.

6 голосов
/ 19 апреля 2011

Может быть, вы забыли написать @Override до публичного void onItemClick?

Adapter.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
        }
});
0 голосов
/ 31 мая 2011

bbalazs это правильно. Я хотел бы выразиться более точно: если у вас есть представление A как дочернее по отношению к представлению B, а A по умолчанию активируется (кнопка f.e.), то setOnItemClickListener не будет работать на B. Это чистая магия, но она работает так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...