Android,Intents:将一个捆绑包传递给SecondActivity

时间:2016-04-26 22:50:06

标签: android android-intent android-bundle

我有一些课。

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Intent newintent = new Intent(getApplicationContext(),Main2Activity.class);
    newintent.putExtra("SOME_Data", "Perfect_Data");
    startActivity(newintent);
    finish();
}
}

我想在另一个类中检索一些数据。

public class Main2Activity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);

    Intent i = this.getIntent();
    Bundle s = getIntent().getExtras();

}
}

但是,当我启动此代码时,请使用字符串" Perfect_Data" - 我明白了:Bundle [mParcelledData.dataSize = 68]。到底是怎么回事?你能救我吗?

2 个答案:

答案 0 :(得分:0)

使用默认的toString函数打印Bundle。

如果您只想获取字符串,请将其更改为:

Intent i = this.getIntent();
String data = i.getStringExtra("SOME_Data");

答案 1 :(得分:0)

如果要打印Bundle的内容,请使用:

for (String key : bundle.keySet()) {
    Object value = bundle.get(key);
    Log.d(TAG, String.format("%s %s (%s)", key,  
        value.toString(), value.getClass().getName()));
}

否则它只使用Object类的默认toString(),这就是你得到的。