2015-09-22 3 views
0

Я использую Пользовательский ListView в Android, и все работает с точной выборкой данных в список. Раньше событие click отлично работало с ним, но когда я применял пользовательские TextView и LinerLayout с настраиваемым фоном в файле litst_view_item.xml, его событие click не работает прямо сейчас, пожалуйста, помогите мне. Как удалить эту ошибку?Android ListView ClickEvent не работает

Я перепробовал все примеры кода, как:

android:focusable="false" 
android:focusableInTouchMode="false" 

в каждой позиции макета в list_view_item.xml (даже в LinearLayout)

и

android:descendantFocusability="blocksDescendants" 

в listview_activity.xml файле

в атрибуте listview и в его родительском LinearLayout.xml

Пожалуйста, если кто-то знает об этой проблеме, пожалуйста, помогите мне

ответ

0

Примените это к ParentLayout в list_view_item.xml не внутри ListView атрибута или где-нибудь в вашей ListView деятельности и отсутствие необходимости использования focusinTouchmode, если вы используете blockdescendants в parentAttribute

android:descendantFocusability="blocksDescendants" 
+0

Я удалил андроид: descendantFocusability = "blocksDescendants" из listview_acitivity.xml и добавлен в rootview listview_item.xml в самом верхнем макете, который является LinearLayout, но все еще не получил никакой реакции ..... Пожалуйста, помогите, если какое-либо другое предложение –

+0

remove он каждый раз, когда в вашем элементе ListView, он должен быть только в вашем 'listview_view.xml' –

0

Удалить андроид: descendantFocusability = "blocksDescendants" из listview_activity.xml и добавить его в макет верхнего уровня list_view_item.xml.

+0

. Он все еще не работал. Любые другие предложения –

+0

Если возможно, можете ли вы отправить list_view_item.xml? –

+0

https://gist.github.com/sahityakumarsuman/e9f129a878395568881f. это github, где я поставил код list_item_code –

0

попробовать с помощью пользовательских ListView адаптер, а также добавить OnClick слушателя в макет представления, как это:

public listviewAdapter(Activity activity, ArrayList<String> list) { 

      this.activity = activity; 
      this.list = list; 

     } 
     @Override 
     public int getCount() { 
      return list.size(); 
     } 
     @Override 
     public Object getItem(int position) { 
      return list.get(position); 
     } 
     @Override 
     public long getItemId(int position) { 
      return position; 
     } 
     private class ViewHolder { 
      LinearLayout linearLayout; 
      TextView txtview; 


     } 

     @Override 
     public View getView(final int position, View convertView, ViewGroup parent) { 

      ViewHolder holder; 
      LayoutInflater inflater = activity.getLayoutInflater(); 

      if (convertView == null){ 

      convertView = inflater.inflate(R.layout.listview_row, null); 

      holder = new ViewHolder(); 
      holder.txtview = (TextView) convertView.findViewById(R.id.txtview); 
        convertView.setTag(holder); 
      }else{ 
      holder = (ViewHolder) convertView.getTag(); 
      holder.txtview.setText(list.get(position)); 
      convertView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        //do something 
       } 
      }); 
}} 

и в OnCreate вам необходимо установить адаптер в списке:

listviewAdapter adapter = new listviewAdapter(ActivityName.this, list); 
listView.setAdapter(adapter); 

это вам не нужно устанавливать OnItemSelectedListener для списка.

+0

извините, но в файле liste_item.xml нет кнопки, есть только текстовое представление ... в нем ......... но да, когда следующая активность будет откройте, тогда у него есть кнопка в нем, но в общем случае она различна в контексте –

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