gpt4 book ai didi

android - 通过单击 ListItem 中的 ImageView 删除 ListItem

转载 作者:行者123 更新时间:2023-11-29 22:00:34 28 4
gpt4 key购买 nike

我有一个包含 ImgaeView 的 ListItem。我想在单击其图像或图标时删除 ListItem。这是我的 ListItemActivity。我将如何调用适配器的 remove 方法来删​​除 ListItem?我在引用时遇到问题。如果有更好的方法,请告诉我。

public class TaskListItem extends LinearLayout {

private Task task;
private TextView taskName;
private TextView responsible;
private TextView priority;
private ImageView bin;
protected TaskListAdapter adapter;

public TaskListItem(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
protected void onFinishInflate() {
super.onFinishInflate();
taskName = (TextView)findViewById(R.id.task_name);
responsible = (TextView)findViewById(R.id.responsible);
priority = (TextView)findViewById(R.id.priority);
bin = (ImageView)findViewById(R.id.remove_task);
}

public void setTask( final Task task) {
this.task = task;
taskName.setText(task.getName() + " ");
//Set responsibility text
responsible.setText("Resp: " + task.getReponsible());
//Set priority text
priority.setText(" Prio: " + task.getPiotiry());
/*
* onClickListener for image to delete
*/
bin.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
**call the adapters remove method to delete this item with parameter (this).**
}
});
}

public Task getTask() {
return task;
}

}

最佳答案

如果您只是想将它隐藏在 ListView 上,您可以使用:

TaskListItem.this.setVisibility(View.GONE);

如果你想从列表中删除它,你将需要这个项目在适配器的数据源中的位置。

您可以在适配器的 getView() 方法中创建 onClickListener 并将其分配给 ImageView。它可能看起来像这样:

public class MyAdapter extends BaseAdapter{

List<Task> mData = null;

public MyAdapter(List<Task> dataSource){
mData = dataSource;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// ...
final Tast task = getItem(position);
TaskListItem listItem = new TaskListItem();
listItem.setTask(task);
listItem.bin.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
mData.remove(task); // or mData.remove(position);
// might need to call notifyDataSetChanged() depending on the adapter you're using
}
};
return listItem;
}
}

关于android - 通过单击 ListItem 中的 ImageView 删除 ListItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12030363/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com