2013-07-17 75 views
0

我有一個簡單的文本和按鈕的自定義列表視圖,該按鈕打開一個對話框,允許用戶刪除或保存文件,但我希望獲取該行的視圖時,我推這按鈕執行刪除動畫。 我怎樣才能得到這個特定的行,在一個按鈕點擊監聽器裏面的視圖? 我使用帶有Base Adapter的自定義陣列適配器!在自定義ListView上獲取特定視圖

   extends BaseAdapter implements View.OnClickListener{ 

在此先感謝,我不知道是否有必要把代碼放在這裏,這是很長的。

回答

1

您應該爲列表視圖使用自定義適配器,並向您的按鈕添加代表您的行位置的標記,然後在clicklistener中,您應該獲取標記並找出哪個行已被點擊。



    @Override 
public View getView(int position, View convertView, ViewGroup parent) { 

     Button yourbtn= (Button) v.findViewById(R.id.yourbtnid); 

     yourbtn.setTag(position); 

     yourbtn.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 

      Button btn = (Button)arg0; 

      int position = Integer.parseInt(btn .getTag().toString()); 

     } 

} 

+0

我嘗試,但我想我不要在 公共查看getView(INT位置,查看正確使用 convertView,ViewGroup父){ 當我定義按鈕參數,我把: holder.btnop tion.setTag(位置); 是這樣嗎?,但是當我嘗試獲取標籤時,我無法通過製作.. int pos = view.getTag(); 因爲int不是一個對象:S –

+0

您應該使用int pos = Integer.parseInt(yourbutton.getTag()。toString())。 – pooyan

+0

我用源代碼編輯我的答案! – pooyan

0

您需要使用ListView.setOnItemSelectedListener()做到這一點從ListViewOnItemSelectedListener返回視圖。

0

如果你正在實現適配器代碼本身的內部點擊動作(我認爲這不是最好的方法),你可以根據需要調用getParentView()多次,獲得整個帶子的一個實例,具體取決於關於按鈕的父級佈局有多深。

相關問題