我正在尝试更新我的serverBuffer
并自动在两个活动之间传递值。在第一个活动MainActivity
中,我创建了以后在另一个活动ListActivity
中使用的函数。
问题是当我传递变量时它始终为null。任何人都可以帮助我吗?
在MainActivity中,我的notificationList会自动更新。
private static ArrayList<String> notificationsList = new ArrayList<String>();
在ListActivity中,我试试这个:
list = MainActivity.getNotificationsList();
始终获取空指针,包含或不包含列表信息。
答案 0 :(得分:0)
如果要在活动之间传递数据,请使用意图而不是静态变量。
ArrayList
实现了serializable,因此您可以使用intent传递列表。
如果你想维护一个全局状态,你可以使用Application类,但我想在这种情况下我应该选择意图。
Intent i = new Intent(ActivityName.this,SecondActivity.class);
intent.putStringArrayListExtra("key",yourlist);
startActivity(intent);
然后在SecondActivity中获取列表
ArrayList<String> list = getIntent().getStringArrayExtra("key");
如果您希望使用Application类,可以参考
Using MyApplication class in android for JSON data
申请类
public class MyApplication extends Application{
ArrayList<String>> arraylist;
public static MyApplication instance=null;
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
}
public static MyApplication getInstance()
{
if(instance==null)
{
instance=new MyApplication();
}
return instance;
}
public void setArrayListData(ArrayList<String> setData)
{
arraylist=setData;
}
public ArrayList<String> getArrayListData()
{
return arraylist;
}
}
在清单应用程序标签android:name“packagename.MyApplication”
中然后在活动
MyApplciation mapp = MyApplication.getInstance();
mapp.setArrayList(yourlist);
同样使用getArrayList()