ListView не сохраняет элементы на следующей позиции, продолжает заменять - PullRequest
0 голосов
/ 12 января 2020

Я создаю простое приложение «Заметки», но когда пользователь пытается сохранить новую заметку, она заменяет текущую заметку. Пожалуйста, помогите мне и скажите мне, где проблема

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    sharedPreferences = this.getSharedPreferences("com.sibi.notes",Context.MODE_PRIVATE);
    listView = findViewById(R.id.listView);

    list = new ArrayList<String>();

    list.add("");

    list.add("Add a new note");

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

    listView.setAdapter(adapter);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            long addNote = listView.getItemIdAtPosition(1);

            if (id == addNote){
                intent = new Intent(getApplicationContext(), SecondActivity.class);
                startActivity(intent);
            }
        }
     });
     String text = sharedPreferences.getString("Note","");

     if(text != ""){
       list.add(text);
     }

}

1 Ответ

0 голосов
/ 12 января 2020

Когда данные вашего адаптера изменяются, используйте adapter.notifyDatasetchanged () или adapter.notifyItemInserted (position) или adapter.notifyItemRemoved (position) или ... или notifyAll () (в вашей деятельности). Если ваши данные огромны используйте notifyItemXX (s) в соответствии с вашими действиями. Если это не решение для вас, вы можете снова установить адаптер с измененными данными (здесь ваш измененный список)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...