gpt4 book ai didi

java - ListAdapter 修改数据源(这是一个数组列表)

转载 作者:行者123 更新时间:2023-11-30 11:59:04 24 4
gpt4 key购买 nike

这是我最近遇到的一个问题:我有一个带有自定义适配器类的 ListView ,该适配器接收一个 ListView 并使用其中的元素填充 ListView 。现在,我想在 ListView 的每一行上都有一个按钮,以从中删除该项目。我应该如何处理这个问题?有没有办法远程触发activity类中的方法,调用adapter上的notifydatachanged()方法来刷新listview?

最佳答案

我做过这样的事情:

public class MyAdapter extends Adapter {

private final ArrayList<String> items = new ArrayList<String>();

// ...

deleteRow(int position) {
items.remove(position);
notifyDataSetChanged();
}
//

@Override
public View getView(int position, View convertView, ViewGroup parent) {

if(convertView == null) {
Tag tag = new Tag();
// inflate as usual, store references to widgets in the tag
tag.button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
deleteRow(position);
}
});
}
// don't forget to set the actual position for each row
Tag tag = (Tag)convertView.getTag();
// ...
tag.position = position;
// ...
}



class Tag {

int position;

TextView text1;
// ...
Button button;
}

}

关于java - ListAdapter 修改数据源(这是一个数组列表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2739086/

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