繁体   English   中英

如何发送一个ArrayList <String> 到另一个活动并在那里显示?

[英]How to send an ArrayList<String> to Another Activity and display there?

如何将ArrayList发送到另一个活动并在那里显示? 我想从另一个活动中获取数据并将其发送到另一个活动并在那里打印。 我只能传递单个字符串,但不能传递字符串数组

Java文件上的代码,

主要活动:

EditText et1 , et2 , et3 , et4 ;
public final static String MESSAGE_KEY = "com.example.prabhav.myapplication.message";
ArrayList<String> ar , tr = new ArrayList<String>();

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

public void sm (View v)
{
    et1= (EditText) findViewById(R.id.name);
    String msg1 = et1.getText().toString();
    et2= (EditText) findViewById(R.id.dob);
    String msg2 = et2.getText().toString();
    et3= (EditText) findViewById(R.id.emailinput);
    String msg3 = et3.getText().toString();
    et4= (EditText) findViewById(R.id.clgi);
    String msg4 = et4.getText().toString();
    ar.add(msg1);
    ar.add(msg2);
    ar.add(msg3);
    ar.add(msg4);
    tr=ar;
    Intent intent = new Intent(this,SecAct.class);
    intent.putExtra("myarray",tr);
    startActivity(intent);

}

另一个活动:

Spinner s;
public final static String MESSAGE_KEY = "com.example.prabhav.myapplication.message";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent= getIntent();
    ArrayList<String> ls = (ArrayList<String>) getIntent().getSerializableExtra("myarray");
    ArrayAdapter<String> adptr=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,ls);
    s= (Spinner) findViewById(R.id.sp);
    s.setAdapter(adptr);

    //  setContentView(R.layout.sec_lay);

}

一次尝试如下

主要活动

Intent i = new Intent(this,SecAct.class);
i.putStringArrayListExtra("myarray", tr);
startActivity(i);

第二活动

ArrayList<String> list=(ArrayList<String>)getIntent().getStringArrayListExtra("myarray");
//use the list as you wish

希望这对您有帮助。

尝试使用putParcelableArrayList发送arrayList,如下所示:

Intent intent = new Intent(this,SecAct.class);
        Bundle bundle = new Bundle();
        bundle.putParcelableArrayList("myArray", (ArrayList<? extends android.os.Parcelable>) tr);
        intent.putExtras(bundle);
        startActivity(intent);

您可以在第二个活动中获得arrayList,如下所示:

Bundle bundle = getIntent().getExtras();
    if (bundle != null) {
        tr= bundle.getParcelableArrayList("myArray");}

我希望这个能帮上忙

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM