簡體   English   中英

用imageview刪除listview中的行

[英]Delete row in listview with imageview

如何在listview上實現刪除行。 當用戶單擊“ x”(圖像視圖)時,我希望能夠刪除該行。 代碼在這里:

listView.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    // When clicked, show a toast with the TextView text
                    String str = listView.getItemAtPosition(position).toString();
                    Toast.makeText(getApplicationContext(), str , Toast.LENGTH_SHORT).show();

                    ImageView ivDel = (ImageView) findViewById(R.id.ivClose);
                    ivDel.setOnClickListener(
                                    new OnClickListener() {
                                            @Override
                                            public void onClick(View v) {
                                                    Toast.makeText(getApplicationContext(), "delete" , Toast.LENGTH_SHORT).show();
                                            }
                                    });
                }

            });

“ x”按鈕僅適用於第一行,其余按鈕均無效。

在此處輸入圖片說明

嘗試這個

    int position = listview1.getPositionForView((View) v.getParent());
    yourList.remove(position);
    yourAdapter.notifyDataSetChanged();

1個

 public interface DeleteListIteamListner {
    void itemDeleteListner(int position);
}

2

yourActivity implements DeleteListIteamListner 
 youAdapter adapter = new youAdapter (yourActivity);
listView.setAdapter(adapter);

youAdapter中的3,

DeleteListIteamListner  listner;
   public youAdapter (yourActivity listner){
       this.listner = listner;
   }

然后,當您單擊刪除imageView時:

ImageView ivDel = (ImageView) findViewById(R.id.ivClose);
                    ivDel.setOnClickListener(
                                    new OnClickListener() {
                                            @Override
                                            public void onClick(View v) {
                                              listner.itemDeleteListner(position);  
                                            }
                                    });

在你里面

@Override
    public void itemDeleteListner(int position){
yourList.remove(position);
yourAdapter.notifyDataSetChanged();
 Toast.makeText(getApplicationContext(), "delete position is "+ position , Toast.LENGTH_SHORT).show();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM