如何从自定义 listView android 中获取已删除的列表项?
How to get deleted list item from custom listView android?
我在 TextView
和 ImageButton
中使用自定义列表视图。在按钮的单击事件中,我想从列表中删除该项目并获取 textview's
文本并将其传递给 activity.
这是我的代码...
适配器
//getView
TextView textView = view.findViewById(R.id.textViewName);
ImageButton imageButtonClear = view.findViewById(R.id.imageButtonClear);
textView.setText(document.getDocName());
imageButtonClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
documentList.remove(i);
CustomAdapter.this.notifyDataSetChanged();
}
});
Activity
//setting listview adapter
customAdapter = new CustomAdapter(context,documentList);
listViewDoc.setAdapter(customAdapter);
//How to get deleted item from list here...
当您删除在一个 ArrayList/Array 中列出名称的行存储并将其传递给 Activity。
TextView textView = view.findViewById(R.id.textViewName);
ImageButton imageButtonClear = view.findViewById(R.id.imageButtonClear);
List<String> data = new ArrayList<String>(); // Here creating an array
textView.setText(document.getDocName());
imageButtonClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
documentList.remove(i);
data.add(document.getDocName()); // here adding data to arraylist
CustomAdapter.this.notifyDataSetChanged();
}
});
在 Adapter
中创建 interface
即 OnItemClearListener
public interface OnItemClearListener{
void onItemClear(String itemName);
}
在 Activity
中实施 OnItemClearListener
并在 Adapter
中传递 Activity
引用
customAdapter = new CustomAdapter(context,documentList,this);
创建 OnItemClearListener
的变量并在 CustomAdapter
中赋值。
然后这样调用接口方法
imageButtonClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onItemClearListener.onItemClear(document.getDocName());
documentList.remove(i);
CustomAdapter.this.notifyItemRemoved(i);
}
});
在你的activity中写一个public方法
public void setDeletedItem(String documentName)
{
//get values from object
Intent intent = new Intent(YourActivity.this, SecondActivity.class);
intent.putExtra("VALUE",documentName);
startActivity(intent);
}
imageButtonClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mContext instanceof YourActivity) {
((YourActivity) mContext).setDeletedItem(documentList.get(i).getDocName());
}
documentList.remove(i);
CustomAdapter.this.notifyDataSetChanged();
}
})
;
我在 TextView
和 ImageButton
中使用自定义列表视图。在按钮的单击事件中,我想从列表中删除该项目并获取 textview's
文本并将其传递给 activity.
这是我的代码...
适配器
//getView
TextView textView = view.findViewById(R.id.textViewName);
ImageButton imageButtonClear = view.findViewById(R.id.imageButtonClear);
textView.setText(document.getDocName());
imageButtonClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
documentList.remove(i);
CustomAdapter.this.notifyDataSetChanged();
}
});
Activity
//setting listview adapter
customAdapter = new CustomAdapter(context,documentList);
listViewDoc.setAdapter(customAdapter);
//How to get deleted item from list here...
当您删除在一个 ArrayList/Array 中列出名称的行存储并将其传递给 Activity。
TextView textView = view.findViewById(R.id.textViewName);
ImageButton imageButtonClear = view.findViewById(R.id.imageButtonClear);
List<String> data = new ArrayList<String>(); // Here creating an array
textView.setText(document.getDocName());
imageButtonClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
documentList.remove(i);
data.add(document.getDocName()); // here adding data to arraylist
CustomAdapter.this.notifyDataSetChanged();
}
});
在 Adapter
中创建 interface
即 OnItemClearListener
public interface OnItemClearListener{
void onItemClear(String itemName);
}
在 Activity
OnItemClearListener
并在 Adapter
Activity
引用
customAdapter = new CustomAdapter(context,documentList,this);
创建 OnItemClearListener
的变量并在 CustomAdapter
中赋值。
然后这样调用接口方法
imageButtonClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onItemClearListener.onItemClear(document.getDocName());
documentList.remove(i);
CustomAdapter.this.notifyItemRemoved(i);
}
});
在你的activity中写一个public方法
public void setDeletedItem(String documentName)
{
//get values from object
Intent intent = new Intent(YourActivity.this, SecondActivity.class);
intent.putExtra("VALUE",documentName);
startActivity(intent);
}
imageButtonClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mContext instanceof YourActivity) {
((YourActivity) mContext).setDeletedItem(documentList.get(i).getDocName());
}
documentList.remove(i);
CustomAdapter.this.notifyDataSetChanged();
}
})
;