2016-01-23 4 views
7
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
     Log.d("test1","run"); 
    } 
}); 

элемент управления ListView не срабатывает, если я устанавливаю так:ListView не кликабельны, когда TextView внутри этой ListView выбирается

<TextView 
     android:id="@+id/comment" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/username" 
     android:layout_below="@+id/username" 
     android:autoLink="web" 
     android:textIsSelectable="true" 
     android:textColor="#000000" 
     android:textSize="14dp" /> 

После того как я удалить textIsSelectable, то onitemclicklistener обжигают.

Я изучал некоторое время, и я последовал за некоторые предложения в Интернете

например

положил android:descendantFocusability="blocksDescendants" родительского мнение

clicklistener обжигает на этот раз, но когда выбор текста, он показывает ошибку:

TextView does not support text selection. Selection cancelled. 

Может как функция существует? спасибо большое

+1

Вы можете написать более подробную информацию о своем коде? например, где вы разместили этот TextView? вы создали адаптер? –

+1

Насколько я понимаю, вы хотите выбрать часть текста, которая находится в 'ListView'. Если я прав, почему бы не изменить дизайн вашего приложения? Оставьте * onItemClickListener *, и когда элемент щелкнут, откройте всплывающее окно, когда пользователь может выбрать нужный текст. – JJ86

ответ

1

Вы можете добавить вручную OnClickListener в список своих родителей в списке. Не забудьте удалить android:descendantFocusability="blocksDescendants". Я просто попробовал.

viewHolder.parent.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast.makeText(context, "Click", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
1

Использование ниже кода, удалите

android:textIsSelectable="true" 

Это может решить вашу проблему.

viewHolder.textView.setOnClickListener 
(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Toast.makeText(context, "Click", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
Смежные вопросы