我有一個簡單的文本和按鈕的自定義列表視圖,該按鈕打開一個對話框,允許用戶刪除或保存文件,但我希望獲取該行的視圖時,我推這按鈕執行刪除動畫。 我怎樣才能得到這個特定的行,在一個按鈕點擊監聽器裏面的視圖? 我使用帶有Base Adapter的自定義陣列適配器!在自定義ListView上獲取特定視圖
extends BaseAdapter implements View.OnClickListener{
在此先感謝,我不知道是否有必要把代碼放在這裏,這是很長的。
我有一個簡單的文本和按鈕的自定義列表視圖,該按鈕打開一個對話框,允許用戶刪除或保存文件,但我希望獲取該行的視圖時,我推這按鈕執行刪除動畫。 我怎樣才能得到這個特定的行,在一個按鈕點擊監聽器裏面的視圖? 我使用帶有Base Adapter的自定義陣列適配器!在自定義ListView上獲取特定視圖
extends BaseAdapter implements View.OnClickListener{
在此先感謝,我不知道是否有必要把代碼放在這裏,這是很長的。
您應該爲列表視圖使用自定義適配器,並向您的按鈕添加代表您的行位置的標記,然後在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());
}
}
您需要使用ListView.setOnItemSelectedListener()
做到這一點從ListView
。 OnItemSelectedListener
返回視圖。
如果你正在實現適配器代碼本身的內部點擊動作(我認爲這不是最好的方法),你可以根據需要調用getParentView()
多次,獲得整個帶子的一個實例,具體取決於關於按鈕的父級佈局有多深。
我嘗試,但我想我不要在 公共查看getView(INT位置,查看正確使用 convertView,ViewGroup父){ 當我定義按鈕參數,我把: holder.btnop tion.setTag(位置); 是這樣嗎?,但是當我嘗試獲取標籤時,我無法通過製作.. int pos = view.getTag(); 因爲int不是一個對象:S –
您應該使用int pos = Integer.parseInt(yourbutton.getTag()。toString())。 – pooyan
我用源代碼編輯我的答案! – pooyan