Java Android studio将ListView传递给其他活动

Java Android studio将ListView传递给其他活动,java,android,android-studio,Java,Android,Android Studio,我试图将数组列表传递给另一个活动,但这似乎还不够。我搜索了一整天,试图通过数组列表,但没有成功。我写了一个用于学习的代码。如何在第二个活动中传递数据并显示Arraylist 操作按钮为btn_保存。如果你想了解更多细节,请告诉我 密码在里面 主要活动(第一个活动): 如果您试图传递字符串的arraylist,那么就很容易了。只需像这样传递arraylist: ArrayList<String> list = new ArrayList<String>(); Inten

我试图将数组列表传递给另一个活动,但这似乎还不够。我搜索了一整天,试图通过数组列表,但没有成功。我写了一个用于学习的代码。如何在第二个活动中传递数据并显示Arraylist

操作按钮为btn_保存。如果你想了解更多细节,请告诉我

密码在里面

主要活动(第一个活动):


如果您试图传递字符串的arraylist,那么就很容易了。只需像这样传递arraylist:

ArrayList<String> list = new ArrayList<String>();  
Intent intent = new Intent(ActivityOne.this, ActivityTwo.class);
intent.putStringArrayListExtra("key", list);
startActivity(intent);
ArrayList<String> list = getIntent().getStringArrayListExtra("key");
ArrayList list=new ArrayList();
意向意向=新意向(ActivityOne.this、ActivityTwo.class);
intent.putStringArrayListExtra(“键”,列表);
星触觉(意向);
并在第二次活动中接受它,如下所示:

ArrayList<String> list = new ArrayList<String>();  
Intent intent = new Intent(ActivityOne.this, ActivityTwo.class);
intent.putStringArrayListExtra("key", list);
startActivity(intent);
ArrayList<String> list = getIntent().getStringArrayListExtra("key");
ArrayList list=getIntent().getStringArrayListExtra(“键”);

我找到了一个临时解决方案(应用程序没有损坏)。唯一的问题是arraylist没有增加。它只包含并显示最后一个值

主要活动:

...

else{
//  addArray.add(getInput);
//  ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, addArray);
//                    showMe.setAdapter(adapter);
    Intent intent = new Intent(MainActivity.this, ListOfNames.class);
    intent.putExtra("data", getInput);
    startActivity(intent);

//  ((EditText)findViewById(R.id.editTextOne)).setText(" ");
//  ((EditText)findViewById(R.id.editTextTwo)).setText(" ");
                }
...
public class ListOfNames extends Activity {
    ArrayList<String> addArrayT = new ArrayList<>();

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

        Bundle bundle = getIntent().getExtras();
        String data = bundle.getString("data");
        Button btn_more = (Button) findViewById(R.id.btn_more);

        ListView showMe = (ListView) findViewById(R.id.list_items);
        addArrayT.add(data);
        ArrayAdapter<String> adapterT = new ArrayAdapter<>(ListOfNames.this, android.R.layout.simple_list_item_1, addArrayT);
        showMe.setAdapter(adapterT);

    }
    public void onClickMore(View v){

        if (v.getId() == R.id.btn_more){
            Intent i = new Intent(ListOfNames.this, MainActivity.class);
            startActivity(i);
        }
    }
}
。。。
否则{
//addArray.add(getInput);
//ArrayAdapter=新的ArrayAdapter(MainActivity.this,android.R.layout.simple\u list\u item\u 1,addArray);
//showMe.setAdapter(适配器);
意向意向=新意向(MainActivity.this,ListOfNames.class);
intent.putExtra(“数据”,getInput);
星触觉(意向);
//((EditText)findViewById(R.id.editTextOne)).setText(“”);
//((EditText)findViewById(R.id.editTextTwo)).setText(“”);
}
...
名称列表(第二项活动):

public类ListOfNames扩展活动{
ArrayList addArrayT=新的ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局列表屏幕);
Bundle Bundle=getIntent().getExtras();
字符串数据=bundle.getString(“数据”);
按钮btn\u more=(按钮)findViewById(R.id.btn\u more);
ListView showMe=(ListView)findViewById(R.id.list\u项);
addArrayT.add(数据);
ArrayAdapter adapter=新的ArrayAdapter(ListOfNames.this,android.R.layout.simple\u list\u item\u 1,addArrayT);
showMe.setAdapter(adapterT);
}
公共void onClickMore(视图五){
如果(v.getId()==R.id.btn\u更多){
意向i=新意向(名称列表、MainActivity.class);
星触觉(i);
}
}
}

您非常接近解决方案,但它不起作用。我试了一整天。单击按钮后,我的应用程序将关闭。@是否有任何异常?请参阅下面的我的答案。应用程序运行时没有bug,但在我尝试向arraylist添加第二个值时出现问题。它只放最后一个值。有什么想法吗?进一步的细节?对错误日志如何?请参阅下面我的答案,作为我的第二次解决方案尝试。应用程序运行时没有bug,但在我尝试向arraylist添加第二个值时出现问题。它只放最后一个值。有什么想法吗?