在类之间传递变量

时间:2015-02-04 07:26:58

标签: java android object parameter-passing getter-setter

我的问题是如何在类extends Activity的类之间传递变量,是的,我有2个主要类

例如,我有一个具有所有setter和getter的对象类,然后放入ArrayList<object>,但是当我在classA extends Activity中设置变量并且我想传递变量时我在classA中设置了对象类,以便我可以在classB扩展活动

中获取它们

我厌倦了在classB中这样做

ArrayList<object> objArrayList;

objArrayList.get(pos).getName;

但我回来的只是一个空指针。

我也做了Log.d("test", "name: " + objArrayList.get(pos).getName);

classA中的

它工作正常但是当我在classB中执行此操作时,我得到一个nullpointer

3 个答案:

答案 0 :(得分:0)

为了在“活动”之间传递变量,请使用您开始第二项活动的意图和putExtra方法:

Intent intent = new Intent(this, classB.class);
String name = objArrayList.get(pos).getName;
intent.putExtra("name",name);

在你的classB中,你可以通过getIntent()方法得到这个参数:

Bundle extras = getIntent().getExtras();
if(extras != null) {
   String name = extras.getString("name");
   ...
}

答案 1 :(得分:0)

    In first class,you need to start second activity 

      Intent i = new Intent(getActivity(), classB.class);
                i.putExtra("Value1", name);  //name is string value which is need to passed in second activity
                startActivity(i);

        In classB...
        Bundle extras = getIntent().getExtras();
            String value = extras.getString("Value1");  
//here as value we get string passed from first activity

答案 2 :(得分:0)

试试这个......

在你的第一次活动......

            Intent i = new Intent(this, SecondActivity.class);
            i.putExtra("My_ARRAY_LIST", arrayList);
            startActivity(i);

你可以把你想发送的任何东西发送给String,int,boolean,ArraList等。 (对象必须是可序列化/可分区的) 在第二个活动中,你应该从意图中提取它,

Intent i = getIntent();
ArrayList<String> arraList = (ArrayList<String>) i.getSerializableExtra("MY_ARRAY_LIST");