2015-09-22 49 views
0

我在Android中使用自定義ListView,並且所有工作都正常,可以將數據提取到列表中。之前的點擊事件可以正常工作,但是當我在litst_view_item.xml文件中應用自定義的TextViewLinerLayout自定義背景時,其單擊事件無法正常工作,請幫助我。 我該如何消除這個錯誤?Android ListView ClickEvent不工作

我嘗試了所有的代碼示例所示:

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

在每一個版面項目在list_view_item.xml(甚至在LinearLayout中)在listview_activity.xml文件

android:descendantFocusability="blocksDescendants" 

in listview attribute and in its parent LinearLayout.xml

請,如果有人知道這個問題,請大家幫我

回答

0

如果您在parentAttribute

使用 blockdescendantslist_view_item.xml這適用於ParentLayout不是裏面的ListView屬性或在你的ListView活動的任何地方,無需使用 focusinTouchmode
android:descendantFocusability="blocksDescendants" 
+0

我從listview_acitivity.xml中刪除了android:descendantFocusability =「blocksDescendants」,並將其添加到rootview listview_item.xml的最上面的佈局中,這是LinearLayout,但仍然沒有得到任何回覆.....請幫忙,如果有任何其他建議 –

+0

刪除它在你的ListView活動中的每一個地方,它應該只在你的'listview_view.xml' –

0

從listview_activity.xml中刪除android:descendantFocusability =「blocksDescendants」,並將其添加到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文件中沒有按鈕,只有文本視圖...在其中.........但是當下一個活動會打開它然後它有按鈕,但它在上下文中是完全不同的 –

相關問題