【问题标题】:Hot to add mutliple items to Listview simple_list_item_1热添加多个项目到 Listview simple_list_item_1
【发布时间】:2019-03-20 00:49:20
【问题描述】:

我有一个 ListView 和一个 ArrayList。如何在不丢失现有项目的情况下动态添加新项目? 例如,我使用addChatv2("John") 添加“John”,但实际上删除了现有的。

编辑: 名称应该从另一个函数中添加。

编辑 2: 我将 chat_name 和 arrayAdapter 设为全局。

private List<String> chat_name;
private ArrayAdapter<String> arrayAdapter;



private String addChatv2(String name) {
lv = (ListView) findViewById(R.id.chatlist);

chat_name = new ArrayList<String>();

arrayAdapter = new ArrayAdapter<String>(
        this,
        android.R.layout.simple_list_item_1,
        chat_name);

lv.setAdapter(arrayAdapter);
//chat_name.add(name);
//arrayAdapter.notifyDataSetChanged();

return name;
}

【问题讨论】:

  • 我是 android 和 java 新手。如果我犯了任何错误,请发表评论。
  • 我可能是错的,但如果你两次调用同一个函数,你将 List 替换为一个新的 ArrayList ,它将用一个空白的新列表替换你刚刚创建的列表。
  • 我已经解决了我的问题,但感谢您的帮助。

标签: java android listview arraylist


【解决方案1】:

只需在 chat_name 列表中添加另一个名称。并再次调用 notifyDatasetChanged 函数

chat_name.add("another name to add");
arrayAdapter.notifyDataSetChanged();

如果您想从其他函数添加名称。然后您可能希望将 arrayAdapter 设为全局。因为否则你将无法调用它。

【讨论】:

  • 您能否通过从另一个函数调用它来扩展您的示例?
【解决方案2】:
private List<String> chat_name;
private ArrayAdapter<String> arrayAdapter;

private void addChatv2() {
    lv = (ListView) findViewById(R.id.chatlist);

    chat_name = new ArrayList<String>();
    chat_name.add("John");

    arrayAdapter = new ArrayAdapter<String>(
            this,
            android.R.layout.simple_list_item_1,
            chat_name);

    lv.setAdapter(arrayAdapter);
}

protected void onCreate(Bundle savedInstanceState) {


    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //test
    addChatv2();
    chat_name.add("Tester");
    arrayAdapter.notifyDataSetChanged();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-27
    相关资源
    最近更新 更多