传递3个元素(意图)

时间:2013-04-12 21:30:17

标签: java android string android-intent bundle

我想将以下三个元素从一个活动传递到另一个活动:

String a = "a";
String b = "b";
String c = "c";

我尝试过以下操作但没有成功:

在主要活动(MainActivity)中:

Bundle extras = new Bundle();
extras.putString("a", a);
extras.putString("b", b);
extras.putString("c", c);
Intent intent = new Intent(MainActivity.this, SubActivity.class);
intent.putExtras(extras);
startActivity(intent);

在子活动(SubActivity)中:

Bundle extras = new Bundle();
String a = extras.getString("a");
String b = extras.getString("b");
String c = extras.getString("c");

3 个答案:

答案 0 :(得分:0)

在SubActivity中,您应该通过调用getIntent().getExtras();来获取Bundle,而不是通过创建一个新的Bundle。

public class SubActivity extends Activity {
    public void onCreate(Bundle saved) {
        super.onCreate(saved);
        setContentView(...);

        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            // call extras.getString() here
        }
    }
}

答案 1 :(得分:0)

String array[] = {"a","b","c"};

Intent i = new Intent(A.this, B.class);
i.putExtra("array", array);
startActivity(i);

在活动B中:

Bundle extras = getIntent().getExtras();
String[] arrayB = extras.getStringArray("array");

答案 2 :(得分:0)

在您的SubActivity中

而不是

 Bundle extras = new Bundle();  

使用以下

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