Не могу позвонить notifydatasetchanged
У меня есть активность, которая запускает startactivityforresult и onactivityresult. в результате onactivityresult я могу установить возвращаемые данные в переменную и затем добавить эти переменные в мой массив, что я не могу сделать, это использовать myAdapter.notifydatasetchanged() после этого, просто получить символ "невозможно разрешить". Это потому, что я создал и объявил массив в oncreate, а результат onactivity не находится в oncreate?
Фрагменты кода ниже...
Ниже сделано в oncreate
/*create array adapter and set to listview*/
final ArrayAdapter<String> myadapter = new ArrayAdapter<>(ListView_Activity.this, R.layout.simple_list_item_1, R.id.row_item_text_view, mylistarray);
final ListView mylistview = findViewById(R.id.mylistview);
mylistview.setAdapter(myadapter);
mylistarray.add("Test");
myadapter.notifyDataSetChanged();
final FloatingActionButton additembutton = findViewById(R.id.floatingActionButton);
additembutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent additem = new Intent(ListView_Activity.this, Create_Item_Activity.class);
startActivityForResult(additem, 1);
}
});
Затем данные извлекаются здесь за пределами создаваемой;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == ADD_NEW_ITEM){
if (resultCode == Activity.RESULT_OK) {
tempdescr = data.getStringExtra("tempdescr");
tempname = data.getStringExtra("tempname");
mylistarray.add(tempdescr);
mylistarray.add(tempname);
myadapter.notifyDataSetChanged();
}
if (resultCode == Activity.RESULT_CANCELED) {
Toast replacewithcode = Toast.makeText(ListView_Activity.this, "replace with code", Toast.LENGTH_SHORT);
replacewithcode.show();
}
}
}
2 ответа
Вы теряете ссылку на массив. Создайте массив как глобальную переменную и добавьте элементы напрямую. Проверьте это: ArrayAdapter.NotifyDataSetChanged () не работает?
Убедитесь в двух вещах:
1 делает ADD_NEW_ITEM
равняется 1
?
2 ты setResult(RESULT_OK, intent);
прежде чем закончить это (Create_Item_Activity)?