2010-11-19 39 views
0

我有一個列表視圖,每行有2個按鈕。 我正在使用cursoradpater來填充列表。ListView中的OnClickListener填充了CursorAdapter

我也在newview()bindview()上使用視圖模式。

我的問題是: 我在哪裏把按鈕的clicklisteners知道按鈕的動作與列表項本身的動作不同? 我保持onListItemClick?

回答

1

你不需要onListItemClick

您可以嘗試爲每個按鈕在適配器

final Button button = (Button) findViewById(R.id.button_id); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       // Perform action on click 
      } 
     }); 

,但可能這不會對列表項工作的事件綁定,所以你需要正如在button documentation中描述的那樣,一個新的問題。

但是,不要將OnClickListener應用於活動中的按鈕,您可以使用android:onClick屬性爲XML佈局中的按鈕指定一個方法。例如:

<Button 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:text="@string/self_destruct" 
    android:onClick="selfDestruct" /> 

現在,當用戶單擊按鈕時,Android系統調用活動的selfDestruct(View)方法。爲了使其發揮作用,該方法必須是公開的,並且接受View作爲其唯一參數。例如:

public void selfDestruct(View view) { 
    // Kabloey 
} 

傳遞給方法的視圖是對被單擊的小部件的引用。

+0

但是這不會給我點擊物品的位置。我的意思是在哪一行按鈕被點擊。 – Mak 2010-11-19 09:21:09

+0

你可以在按鈕上設置標籤()來設置你需要的組合ID。您將通過'getTag()'從傳遞的視圖參數中讀取 – Pentium10 2010-11-19 09:42:00