Может быть, вам нужно вызвать adapter.notifyDataSetChanged()
в потоке пользовательского интерфейса.
Также лучше использовать ArrayList<String>
вместо String[]
Сохраните ссылки на оба ArrayList
и ArrayAdapter
внутри вашего activity
класса.
private ArrayList<String> items;
private ArrayAdapter<String> adapter;
Инициализируйте ваш ArrayList<String>
и установите adapter
в вашем onCreate
items = new ArrayList<String>();
// add initial items
items.add("1st item");
// create adapter
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
// set the adapter
listView.setAdapter(adapter);
Теперь, когда вы захотитеизмените элементы, вызовите методы add()
, remove()
и т. д. ArrayList
и затем вызовите adapter.notifyDataSetChanged()
.Изменение на ArrayList
может быть сделано в любом потоке, но adapter.notifyDataSetChanged()
должно вызываться в потоке пользовательского интерфейса.
Например, при нажатии кнопки вы можете сделать
items.add("New item");
adapter.notifyDataSetChanged();
Также вы можете проверить это: это и
это
PS: Извините за мои плохие навыки публикации.Я новенький.