如何将项目添加到列表查看更改其他项目的情况

how to add an item to a listView whithout changing other Items

提问人:Amirhussein 提问时间:3/19/2022 最后编辑:Emir BolatAmirhussein 更新时间:3/20/2022 访问量:83

问:

我是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();
      }
   });
}

我进行了此更改,但是当单击添加按钮时,正在添加一个项目,但以前的更改消失了,这是当我单击添加按钮时

java android 列表视图

评论


答:

0赞 melihozcann 3/19/2022 #1

您可以使用该功能来代替它。从这里删除最后一个,并将 your 插入到这个 ArrayList 中,然后在adapter.insert(mark, marks.size());adapter.notifyDataSetChanged();final ArrayList<Mark> marks = new ArrayList<Mark>();MarkOnClickListener

评论

1赞 Amirhussein 3/19/2022
我试过了,但仍然有同样的问题
0赞 zen_of_kermit 3/19/2022 #2

首先,我强烈建议您使用 RecyclerView 而不是 ListView(如果您还没有的话)。它是 ListView 的绝对更好的版本。

您要查找的函数是 notifyItemInserted

我用 Kotlin 写了一个非常简单的例子(如果你想继续 Android 开发,也建议学习,因为它现在是官方支持的语言。

相关片段如下。在适配器中创建一个函数,该函数使用:addItemnotifyItemInserted

fun addItem(value: String) {
    items.add(value)
    notifyItemInserted(items.size)
}

然后在按钮中调用该适配器函数以添加新项。OnClickListener

评论

0赞 Amirhussein 3/22/2022
我试过了,它有效。谢谢