arraylist的内容是否未按其他意图显示?

时间:2019-01-21 02:40:43

标签: android arraylist

我有两个活动:MainActivity和ContentActivity。

MainActivity(在1个ListView上包含“标题”和“内容”从ContentActivity获取数据)

当我单击ListView中的一项时,ContentActivity上将显示“标题”和“内容”。然后单击保存按钮,然后保存数据。

但是当我单击ListView中位置2处的项目时,位置1处的项目的“内容”发生了变化。

那么,如何解决以上问题?

这是我的代码:

MainActivity:

ArrayList<String> arrayListNote;
ArrayAdapter arrayAdapter
Note _note;
String _content;

listViewNote.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String title = arrayListNote.get(position);
                String content = _content;

                Intent intent = new Intent(MainActivity.this, ContentActivity.class);
                intent.putExtra("title", title);
                intent.putExtra("content", content);

                startActivity(intent);
        }
    });

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK && data != null) {
        _note = (Note) data.getSerializableExtra("noteContent"); // noteContent from ContentActivity
        _content = _note.getContent(); // getContent() in Note.java class
        arrayListNote.add(_note.getTitle()); // getTitle() in Note.java class
        arrayAdapter.notifyDataSetChanged();
    }

    super.onActivityResult(requestCode, resultCode, data);
}

ContentActivity:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_content);

    Intent intent = getIntent();
    edtTitle.setText(intent.getStringExtra("title"));
    edtContent.setText(intent.getStringExtra("content"));

    btnSave.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            SetContent();
        }
    });
}

private void SetContent() {
    String title= edtTitle.getText().toString();
    String content= edtContent.getText().toString();

    Note _note = new Note(title, content);

    Intent intent = new Intent();
    intent.putExtra("noteContent", _note);
    setResult(RESULT_OK, intent);
    finish();
}

0 个答案:

没有答案