[英]How to pass ArrayList<Class> from one activity to another?
I have this ArrayList<ToLet> toLet;
我有这个ArrayList<ToLet> toLet;
The ToLet class is a POJO class. ToLet类是POJO类。
Now how can I pass this from one activity to another? 现在如何将其从一项活动传递到另一项活动? What is the best way to do it? 最好的方法是什么?
I have gone through the following links.. 我已经通过以下链接。
How to pass an object from one activity to another on Android 如何在Android上将对象从一项活动传递到另一项活动
How to pass ArrayList<Custom_Object> from one activity to another in Android? 如何将ArrayList <Custom_Object>从一个活动传递到Android中的另一个活动?
but did not help me.So If anyone knows the answer,let me know 但没有帮助我。所以如果有人知道答案,请告诉我
You can also use this for passing ArrayList tolet; 您也可以使用它来传递ArrayList tolet; one activity to Another activity. 一个活动到另一个活动。
Create the object of your class :- 创建您的类的对象:
ToLet obj = new ToLet();
ArrayList<ToLet> tolet;
int size = tolet.getSize();
Intent ii = new Intent(your_current_class.this, next_class_where_you_want_to_use);
ii.putExtra("listsize",size);
startActivity(ii);
Now Go to your next class and use :- 现在转到您的下一堂课,并使用:-
Intent intent = getIntent();
String mylistsize = intent.getIntExtra("listsize",default value);
and AndroidMainest.xml file update this activity. 和AndroidMainest.xml文件更新此活动。
<activity android:name="yourcurrentclass" />
<activity android:name="yournextclass" />
It should solve your query. 它应该可以解决您的查询。
When you are creating an object of intent, you can take advantage of following two methods for passing objects between two activities. 创建意图对象时,可以利用以下两种方法在两个活动之间传递对象。
putSerializable putSerializable
The following tell you about putParceble 以下内容介绍了putParceble
Review Writing Parcelable classes for Android carefully. 仔细阅读为Android编写Parcelable类 。 Here they are using Hashmap to store the values and pass the object to another class. 在这里,他们使用Hashmap来存储值并将对象传递给另一个类。
Make one class, ObjectA
. 制作一个类ObjectA
。 In that, I used all the setter and getter methods. 在此,我使用了所有的setter和getter方法。
package com.ParcableExample.org;
import android.os.Parcel;
import android.os.Parcelable;
/**
* A basic object that can be parcelled to
* transfer between objects.
*/
public class ObjectA implements Parcelable
{
private String strValue = null;
private int intValue = 0;
/**
* Standard basic constructor for non-parcel
* object creation.
*/
public ObjectA()
{
}
/**
*
* Constructor to use when re-constructing object
* from a parcel.
*
* @param in a parcel from which to read this object.
*/
public ObjectA(Parcel in)
{
readFromParcel(in);
}
/**
* Standard getter
*
* @return strValue
*/
public String getStrValue()
{
return this.strValue;
}
/**
* Standard setter
*
* @param strValue
*/
public void setStrValue(String strValue)
{
this.strValue = strValue;
}
/**
* Standard getter
*
* @return intValue
*/
public Integer getIntValue()
{
return this.intValue;
}
/**
* Standard setter
*
* @param strValue
*/
public void setIntValue(Integer intValue)
{
this.intValue = intValue;
}
@Override
public int describeContents()
{
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags)
{
// We just need to write each field into the
// parcel. When we read from parcel, they
// will come back in the same order
dest.writeString(this.strValue);
dest.writeInt(this.intValue);
}
/**
*
* Called from the constructor to create this
* object from a parcel.
*
* @param in parcel from which to re-create object.
*/
public void readFromParcel(Parcel in)
{
// We just need to read back each
// field in the order that it was
// written to the parcel
this.strValue = in.readString();
this.intValue = in.readInt();
}
/**
*
* This field is needed for Android to be able to
* create new objects, individually or as arrays.
*
* This also means that you can use use the default
* constructor to create the object and use another
* method to hyrdate it as necessary.
*/
@SuppressWarnings("unchecked")
public static final Parcelable.Creator CREATOR = new Parcelable.Creator()
{
@Override
public ObjectA createFromParcel(Parcel in)
{
return new ObjectA(in);
}
@Override
public Object[] newArray(int size)
{
return new ObjectA[size];
}
};
}
Then make one Activity that is used to send the Object to another activity. 然后进行一个活动,该活动用于将对象发送到另一活动。
package com.ParcableExample.org;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class ParcableExample extends Activity
{
private Button btnClick;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initControls();
}
private void initControls()
{
btnClick = (Button)findViewById(R.id.btnClick);
btnClick.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
ObjectA obj = new ObjectA();
obj.setIntValue(1);
obj.setStrValue("Chirag");
Intent i = new Intent(ParcableExample.this,MyActivity.class);
i.putExtra("com.package.ObjectA", obj);
startActivity(i);
}
});
}
}
Now finally make one another activity that read the Object and get the value from that. 现在,终于进行另一个活动,该活动读取对象并从中获取值。
package com.ParcableExample.org;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MyActivity extends Activity
{
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Bundle bundle = getIntent().getExtras();
ObjectA obj = bundle.getParcelable("com.package.ObjectA");
Log.i("---------- Id ",":: "+obj.getIntValue());
Log.i("---------- Name ",":: "+obj.getStrValue());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.