Не могу позвонить 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)?

Другие вопросы по тегам