如何使用Intent发送和接收ArrayList <String>?

我是Android新手。我需要你的帮助。我的问题是 - 我有2类Nplist.java和Addcustomer.java。在我的AddCustomer类,一个TextView和一个Button是去Nplist类。在我的Nplist类有检查表,这个检查表来自数据库和所有检查值存储在ArrayList<String>和一个Button用于返回AddCustomer类。我想ArrayList<String>这是在Nplist要通过显示在我的AddCustomer类Textview。我曾试过这些,但我的Addcustomer班级坠毁。如何使用Intent发送和接收ArrayList <String>?

1.Nplist.class

add.setOnClickListener(new View.OnClickListener() {<br> 

@Override<br>

public void onClick(View view) {<br>

Bundle extra=new Bundle();<br>

extra.putSerializable("objects",checkedList);<br>

Intent intent = new Intent(Nplist.this, AddCustomer.class);<br>

intent.putExtra("extra",extra);<br>

startActivity(intent);<br>

});

2.AddCustomer.class

onCrete()...{ 

Bundle extra = getIntent().getBundleExtra("extra");<br>

ArrayList<String> object = (ArrayList<String>)extra.getSerializable("objects");<br>

for (String str : object) {<br>

getnp.append(str + "\n");<br>

}

}

你期望的结果是? - 你得到的实际结果是什么? (请提供任何错误。) 当我去这样Nplist - > AddCustomer其对运作良好,但崩溃(AddCustomer - > Nplist - > AddCustomer)

回答:

这是因为当你回来到您的AddCustomer活动列表为空。您可以通过创建一个全局类来解决这个问题,该类将把列表存储在静态字段中,并且您可以从任何您想要的类或活动访问该列表。尝试下面的解决方案。

Global.java类是如下:

public class Global { 

private static ArrayList<String> object = new ArrayList<>();

public static ArrayList<String> getObject() {

return object;

}

public static void setObject(ArrayList<String> object) {

Global.object = object;

}

}

NpList.java类设置列表如下价值:

onCreate()...{ 

Bundle extra = getIntent().getBundleExtra("extra");

ArrayList<String> object = Global.getObject();

for (String str : object) {

getnp.append(str + "\n");

}

}

add.setOnClickListener(new View.OnClickListener() { 

@Override

public void onClick(View view) {

Global.setObject(checkedList);

Intent intent = new Intent(Nplist.this, AddCustomer.class);

startActivity(intent);

}

});

现在AdCustomer.java如下访问这可能对你有帮助。

回答:

使用putStringArrayListExtra方法,您可以发送字符串的数组列表以及意图。

发送方:

Intent intent = ... 

intent.putStringArrayListExtra("THE_KEY", theList);

接收侧:

ArrayList<String> theList = intent.getStringArrayListExtra("THE_KEY"); 

以上是 如何使用Intent发送和接收ArrayList &lt;String&gt;? 的全部内容, 来源链接: utcz.com/qa/259830.html

回到顶部