Android, Intents: передан один пакет в SecondActivity

У меня есть некоторый класс.

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 ответа

Решение

Если вы хотите распечатать содержимое 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()));
}

В противном случае он просто использует значение по умолчанию toString() класса Object, которое вы и получили.

Пакет печатается с использованием функции toString по умолчанию.

Если вы просто хотите получить строку, измените ее на это:

Intent i = this.getIntent();
String data = i.getStringExtra("SOME_Data");
Другие вопросы по тегам