我想将类对象类型的ArrayList从一个活动发送到另一个活动 但是,它给了我一个错误,请帮助我。我试过很多链接,但是,我的问题 没解决。 致命的例外主要: 了java.lang.RuntimeException 我试过这些链接: Passing ArrayList with objects to new Activity? How to pass ArrayList of Objects from one to another activity using Intent in android?
//Sending Side Code:
if(result.size()>0)
{
ArrayList< LogSetGet> lst=new ArrayList<LogSetGet>();
lst=result;
Intent i=new Intent(LogIn.this,Home.class);
i.putExtra("list",result);
startActivity(i);
}
//Receiving side Code:
Intent i=this.getIntent();
ArrayList<LogSetGet>ls=ArrayList<LogSetGet>)i.getSerializableExtra("list");
ArrayAdapter<LogSetGet> adptr=new ArrayAdapter<LogSetGet>(Home.this,android.R.layout.simple_list_item_1,ls);
lv.setAdapter(adptr);
提前谢谢。
答案 0 :(得分:0)
只需在onCreate()
上声明您的ArrayListstatic ArrayList< LogSetGet> lst=new ArrayList<LogSetGet>();
当您声明变量或方法时,您可以使用“活动名称”在应用程序中的任何位置调用。
例如
ArrayList< LogSetGet> lst1 = new ArrayList<LogSetGet>();
lst1 = youractivityname.lst;
您的活动名称只不过是您申报的地方 static ArrayList&lt; LogSetGet&GT; lst = new ArrayList();
答案 1 :(得分:0)
你写这个
class LogSetGet implements Serializable{
}
和
if(result.size()>0){
ArrayList< LogSetGet> lst=new ArrayList<LogSetGet>();
lst=result;
Intent i=new Intent(LogIn.this,Home.class);
i.putExtra("list",result);
startActivity(i);
}
希望你能得到这个
答案 2 :(得分:0)
取决于类型:
putIntegerArrayListExtra(String name, ArrayList<Integer> value)
putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value)
putStringArrayListExtra(String name, ArrayList<String> value)
putCharSequenceArrayListExtra(String name, ArrayList<CharSequence> value)
然后你可以使用key string作为参数来读取下一个活动:
myIntent.getStringArrayListExtra("arrayPeople");
答案 3 :(得分:0)
如果您在ArrayList中的对象很大,或者您将在许多不同的活动中使用它们,我建议您使用Singleton模式。简单单身人士的例子:
public class TestSingleton {
private static TestSingleton testSingleton;
private ArrayList<String> testArray;
TestSingleton() {
testArray = new ArrayList<String>();
}
public static TestSingleton getInstance() {
if (testSingleton == null)
testSingleton = new TestSingleton();
return testSingleton;
}}
然后,您将能够在应用程序的任何位置使用getInstance()获取TestSingleton的实例。内存中只有一个对象,您可以使用它而不用如何在活动之间移动它。只需在任何你想要的地方调用TestSingleton.getInstance()即可。