1

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

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");
4

3 回答 3

0

在 SubActivity 中,您应该通过调用来获取 Bundle getIntent().getExtras();,而不是通过创建新的 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
        }
    }
}
于 2013-04-12T21:34:13.137 回答
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");
于 2013-04-12T21:34:28.850 回答
0

在您的子活动中

代替

 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");
 } 
于 2013-04-12T21:34:38.517 回答