如何将数据从一个 Activity 中的 ListView 传递到另一个 Activity 上的 TextView?

Posted

技术标签:

【中文标题】如何将数据从一个 Activity 中的 ListView 传递到另一个 Activity 上的 TextView?【英文标题】:How to pass data from ListView in one Activity to a TextView which is found on another Activity? 【发布时间】:2018-11-15 10:55:34 【问题描述】:

我设法将文本添加到 ListView,但我想通过单击按钮“按钮”将 ListView 数据传递到另一个活动中的 TextView。我不知道如何使用 Serializable 或 Parcelable 通过 Listview 传递数据。 Layout Screenshot

public void onClick(View v)

        switch (v.getId ()) 
            case R.id.btnAdddata:

                String result = editText.getText ().toString ();
               arrayList.add(result); //add text from edittext to list
              adapter.notifyDataSetChanged (); //update arraylist and notify adapter
             break;

            case R.id.btnNext:

                 Intent i = new Intent (MainActivity.this, NextActivity.class);
                 i.putExtra("key", (Serializable) listView_lv);
                startActivity (i);
                break;

        
    

【问题讨论】:

你的对象是什么样子的? 【参考方案1】:

这仍然需要您实现 parcelable(如果使用自定义对象)。如果您进行快速的 google 搜索,会有关于如何执行此操作的指南!

这是一个仅使用字符串 ArrayList 的示例!

ArrayList<String> myData = new ArrayList<>();
        for(int i = 0; i < listView.getAdapter().getCount(); i++) 
            myData.add(listView.getAdapter().getItem(i));
        
        Intent intent = new Intent(CurrentActivity.this, NewActivity.class);
        intent.putStringArrayListExtra("myData", myData);
        // Or use this for a list of custom objects, but the custom objects need to implement Parcelable - Google this to find out more!
        intent.putParcelableArrayListExtra("myData", myData);
        startActivity(intent);

【讨论】:

以上是关于如何将数据从一个 Activity 中的 ListView 传递到另一个 Activity 上的 TextView?的主要内容,如果未能解决你的问题,请参考以下文章