2011-09-06 130 views
5

我想將按鈕添加到我的列表視圖的每一行。我在我的佈局文件夾中創建了一個名爲row.xml的XML文件,並在該文件中添加了兩個文字瀏覽和一個按鈕。但是當添加一個按鈕時,我無法點擊列表視圖的項目。我只能點擊按鈕。這裏是row.xml將按鈕添加到列表視圖中的每一行

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 


    <TextView 
     android:id="@+id/text11" 

     android:layout_alignParentLeft="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    android:textSize="25sp" 
    android:textColor="#000000" 
     /> 
      <TextView 
     android:id="@+id/text2" 

     android:layout_alignParentLeft="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    android:textSize="10sp" 
    android:textColor="#000000" 
     /> 
      <Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> 
</LinearLayout> 

我想在我的活動中引用textviews和按鈕。請幫助我並提出一些建議。

回答

1
+0

感謝朋友。我知道了。但我如何通過它們的id找到按鈕,因爲它們在row.xml中,而我的主佈局文件是不同的。請幫助 – hussain

+0

@hussain:看看我編輯的答案。 – user370305

+0

button =(Button)view.findViewById(R.id.btn);這裏的view是你膨脹之後的你的rw.xml文件的視圖。 – user370305

0

請查看此鏈接...

http://commonsware.com/Android/excerpt.pdf

在該PDF在第104頁,他在列表視圖的每一行添加了一個圖像。您用按鈕替換它。

希望這可以解決您的問題。

+0

第104頁?沒有頁面104以頁153開頭 – cc4re

+0

檢查頁面175開始。 –

1

您可以使用自定義適配器(擴展數組適配器非常簡單)。在getView方法中,在您的TextView上設置onClickListener,這樣您的按鈕和ListItem的其他部分都會響應觸摸。

1

如果你想嘗試新的東西的問題檢查LINK

希望這將是有益的。

8

我有一個類似的問題。簡單的訣竅是將android:focusable="false"添加到您的按鈕。

+0

謝謝。我終於找到了適合我的解決方案!我特別的列表視圖行中有兩個按鈕,一個在左邊,一個在右邊。這兩個按鈕都起作用,但是當我點擊該行的其他任何地方時,它並沒有調用onItemSelected回調。 – hellaandrew

+0

不知道爲什麼,但沒有爲我工作 – fnc12

1

您必須添加可聚焦=「假」,你可以

<Button 
     android:id="@+id/bt_do" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     **android:focusable="false"** /> 
在適配器

public class MyAdapter extends BaseAdapter { 
    private Context context; 
    private List<Objet> objects; 
    private OnClickListener listener; 

    public MyAdapter(Context context, List<Objet> objects, 
      OnClickListener listener) { 
     this.context = context; 
     this.objects = objects; 
     this.listener = listener; 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      LayoutInflater infalInflater = ((Activity) context) 
        .getLayoutInflater(); 
      convertView = infalInflater.inflate(R.layout.my_line_list, null); 
     } 
     Button bt_do=(Button)convertView.findViewById(R.id.bt_do); 
     bt_do.setOnClickListener(listener); 
     return convertView; 

    } 

    @Override 
    public boolean hasStableIds() { 
     return true; 
    } 

    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return objects.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     // TODO Auto-generated method stub 
     return objects.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 

} 

,並在您的活動

創建聯合國適配器和落實按鈕的監聽器。

相關問題