2011-11-17 94 views
2

在我的應用程序正在使用中,我已經通過了ArrayAdapter的getView()方法是這樣的如何獲取listview中按鈕的ID?

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    mPosition= position; 
    LayoutInflater inflater = context.getLayoutInflater(); 
    View rowView = inflater.inflate(R.layout.imagelistlayout, null, true); 
    deleteButton= (Button)rowView.findViewById(R.id.delete_bn); 
    deleteButton.setTag(position); 
    TextView textView = (TextView) rowView.findViewById(R.id.label); 
    textView.setText(names[position]); 


    return rowView; 

} 

現在我想設置onclicklistener()在deleteButton列表活動。當點擊刪除按鈕時,它會刪除該項目。請幫幫我。

+1

檢查這個環節得到了ID /位置:[處理按鈕點擊在ListView行(HTTP://androidforbeginners.blogspot .com/2010/03/click-buttons-in-listview-row.html) –

+0

謝謝Herry對我很有用。 – Sandroid

+1

感謝Paresh Mayani這個鏈接真的很有幫助。 – Sandroid

回答

0
... 
deleteButton.setOnClickListener(new OnClickListener() { 
public void onClick(View v) { 
    //Handle deleting the item here. 
    // or item enable -> false 
v.getParent() 
} 
}); 
... 
1

您應該將OnClickListener直接添加到getView()中的按鈕。

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    mPosition= position; 
    LayoutInflater inflater = context.getLayoutInflater(); 
    View rowView = inflater.inflate(R.layout.imagelistlayout, null, true); 
    deleteButton= (Button)rowView.findViewById(R.id.delete_bn); 
    deleteButton.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     //Handle deleting the item here. 
     //If you need the layout holding the button, you can probably get it by using v.getParent() 
    } 
    }); 
    TextView textView = (TextView) rowView.findViewById(R.id.label); 
    textView.setText(names[position]); 

    return rowView; 
} 
1

有我最近用在我的應用程序

((Button) l.findViewById(R.id.btn_rm)).setOnClickListener(new OnClickListener(){ 
public void onClick(View v) { 

    list_of_elements.remove(position);  
    My_Custom_List_Adapter.this.notifyDataSetChanged(); 
}     
}); 

請注意,這一直是expandablelistadapter內開發的代碼文檔片斷,所以它可以從一個普通listadapter略有不同

0

1。使用方法delete(int position)創建接口。

2 .implement它的活動,你正在使用的ListView

delete(int position) 
{ 
adapter.remove(position) // modify the syntax as per need . 
} 

3 .pass這個接口,通過構造函數適配器。

4 .WRITE onClickListener內getView爲deletebutton並調用我nterface.delete(position)

2

可以使用可用於視圖setTag方法。坐落於deletebutton setTag的ID /位置和onClicklistener您可以通過view.getTag()