2011-06-09 65 views
0

的列表視圖中執行onListItemClick我有一個ListView三個ImageButton s和TextView s,ImageView。我如何在ListView中爲ImageButton單獨執行onListItemClick我該如何在android

public class AndroidThumbnailList extends ListActivity{ 
    .......... 
    ib2=(ImageButton)findViewById(R.id.imageButton2); 
    ib3=(ImageButton)findViewById(R.id.imageButton3); 
    ib1=(ImageButton)findViewById(R.id.imageButton1); 

    public class MyThumbnaildapter extends ArrayAdapter<String>{ 
      public MyThumbnaildapter(Context context, int textViewResourceId,String[] objects) { 
        super(context, textViewResourceId, objects); 
        // TODO Auto-generated constructor stub 
      } 
      public View getView(int position, View convertView, ViewGroup parent) { 
        ......... 
      } 
    } 

    protected void onListItemClick(ListView l, View v, int position, long id) { 

     Log.e("video", "called"); 
     super.onListItemClick(l, v, position, id); 
     if(v.equals(ib1)){ 
      .... 
     } 
     if(v.equals(ib2)){ 
      .... 
     } 

    } 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setListAdapter(new MyThumbnaildapter(AndroidThumbnailList.this, R.layout.row, _videosId)); 
    } 

} 

如果我觸摸ImageButton no action is done and the ImageButton也沒有突出顯示。

我的XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" android:layout_height="100dp"  android:descendantFocusability="blocksDescendants"> 
<image view>....</image view> 
<LinearLayout android:orientation="vertical" android:descendantFocusability="blocksDescendants" 
<ImageButton android:id="@+id/imageButton1 ... ></ImageButton> 
<ImageButton android:id="@+id/imageButton2 ... ></ImageButton> 
<ImageButton android:id="@+id/imageButton3 ... ></ImageButton> 

請幫助我。

回答

0

您可以爲每個ImageButton設置個人onClick()事件處理程序。

您必須聲明你的上下文的方法(通常,你的Activity)的ImageButton

public void onClickHandler(View v) 

請參閱Javadocs和onClick()進一步的細節。

+0

我執行如下:我得到空指針異常請幫我 類實現OnclickListener { ib1 =(ImageButton)findViewById(R.id.image1); ib1.setOnclickListener(this); //空指針異常 public void onClickHandler(View v){if(v.getid.equals(R,id.image){...} } } – 2011-06-09 07:44:54

1

您將不得不爲ListAdaptergetView()中的每個Button設置聽衆。

檢查this thread

+0

我錯過了它。你速度更快。 +1。我的回答:和這個一樣。 – 2011-06-09 06:57:19

0

首先,您是使用ListView還是LinearLayoutListActivityListView一起使用,我沒有看到你的。您已經使用了LinearLayout,並已給出您自己的ImageButton,它們不是由適配器創建的,因此不使用onListItemClick

其次(這只是意見,你可以把它認爲不工作),恕我直言,你最好定義OnClickListener當你在getView()定義的項目,而不是使用onListItemClick