2012-04-25 67 views
0

我有一個自定義列表視圖的ImageButton元素上按下時...如何獲得列表項位置的ListView

我與佈局構建列表視圖中的每一個項目......

我的佈局有4個文本視圖和一個ImageButton ..我的列表視圖大小是10個元素。

現在我需要推出取決於按下按鈕的位置不同的活動..

一樣,如果用戶按下第三列表項的ImageButton然後我需要顯示第三活動..

問題,我面對是我無法獲得的ImageButton的位置編號..

我已經加入「setOnItemClickLIstener()」,但被按下的ImageButton時,其沒有得到所謂的..

請幫我如何得到positio n被按下的ImageButton ...

回答

0

有兩種方法可以做到這一點,一種是將監聽器放在按鈕上,然後在適配器上,您應該在每個按鈕上放置一個監聽器,並在這些監聽器上放置正確的活動打電話。

或者你不能把聽者的按鈕,列表上使用setOnItemClickListener,那麼你將有你的位置,並可以開始正確的活動。

0

在你的適配器您getview()方法...把這個方法...

mybutton.setOnClickListener(new OnClickListener() { 
private int pos = position; 

    @Override 
public void onClick(View v) { 
Toast.makeText(context, "position="+ String.valueOf(pos), Toast.LENGTH_SHORT).show(); 

    } 
}); 

這將敬酒的位置...(或者你可以得到的位置值)

0

我以這種方式解決。 在我getview()我的適配器的方法,我設置的標籤我的ImageButton並將其保存在使用後的 setOnClickListener方法。持有者是getView()方法內部使用的靜態類。

 public View getView(int position, View convertView, ViewGroup parent){ 
    //... 
    holder.imgButton = (ImageButton)rowView.findViewById(R.id.imageViewBookProject); 
    holder.imgButton.setTag(position); 
    holder.imgButton.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
     String tag = v.getTag().toString(); 
     Log.d("clicked button", tag); 
     //store the position of the clicked button for later use in the code 
     lastClicked = Integer.parseInt(tag); 
     //perform my action 
     } 

    }); 
0

只是把這個在XML文件中:

<ListView 
.... 
.... 
android:focusable="false" 
android:focusableInTouchMode="false"/> 
+0

@Jeff ...謝謝! – 2013-06-21 11:10:39