提问人:Amirhussein 提问时间:3/19/2022 最后编辑:Emir BolatAmirhussein 更新时间:3/20/2022 访问量:83
如何将项目添加到列表查看更改其他项目的情况
how to add an item to a listView whithout changing other Items
问:
我是android的初学者,我想在单击按钮时向ListView添加一个项目。 但是当我这样做时,ListView 重新启动,我之前所做的所有更改都消失了。 如何保存ListView的先前状态。
这是MainActivity:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listMarks = (ListView) findViewById(R.id.list_marks);
btn_add = (Button) findViewById(R.id.btn_add);
final Mark mark = new Mark("", "", "", "");
final ArrayList<Mark> marks = new ArrayList<Mark>();
marks.add(marks.size(), mark);
adapter = new MarkLitViewAdapter(MainActivity.this, marks);
listMarks.setAdapter(adapter);
btn_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
marks.add(mark);
adapter.notifyDataSetChanged();
}
});
}
我进行了此更改,但是当单击添加按钮时,正在添加一个项目,但以前的更改消失了,这是当我单击添加按钮时
答:
0赞
melihozcann
3/19/2022
#1
您可以使用该功能来代替它。从这里删除最后一个,并将 your 插入到这个 ArrayList 中,然后在adapter.insert(mark, marks.size());
adapter.notifyDataSetChanged();
final ArrayList<Mark> marks = new ArrayList<Mark>();
Mark
OnClickListener
评论
1赞
Amirhussein
3/19/2022
我试过了,但仍然有同样的问题
0赞
zen_of_kermit
3/19/2022
#2
首先,我强烈建议您使用 RecyclerView 而不是 ListView(如果您还没有的话)。它是 ListView 的绝对更好的版本。
您要查找的函数是 notifyItemInserted。
我用 Kotlin 写了一个非常简单的例子(如果你想继续 Android 开发,也建议学习,因为它现在是官方支持的语言。
相关片段如下。在适配器中创建一个函数,该函数使用:addItem
notifyItemInserted
fun addItem(value: String) {
items.add(value)
notifyItemInserted(items.size)
}
然后在按钮中调用该适配器函数以添加新项。OnClickListener
评论
0赞
Amirhussein
3/22/2022
我试过了,它有效。谢谢
评论