Ответы:
У вас есть несколько вариантов:
1) Используйте комплект из намерения :
Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);
2) Создайте новый комплект
Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);
3) Используйте метод быстрого вызова putExtra ()
Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);
Затем в запущенном Activity вы можете прочитать их через:
String value = getIntent().getExtras().getString(key)
ПРИМЕЧАНИЕ. Пакеты имеют методы «get» и «put» для всех типов примитивов, Parcelables и Serializables. Я просто использовал строки в демонстрационных целях.
Вы можете использовать Bundle из Intent:
Bundle extras = myIntent.getExtras();
extras.put*(info);
Или весь комплект:
myIntent.putExtras(myBundle);
Это то, что вы ищете?
Передача данных из одной активности в активность в Android
Намерение содержит действие и, необязательно, дополнительные данные. Данные могут быть переданы в другой вид деятельности с помощью putExtra()
метода намерения . Данные передаются в качестве дополнений и являются key/value pairs
. Ключ всегда является строкой. В качестве значения вы можете использовать примитивные типы данных int, float, chars и т. Д. Мы также можем передавать Parceable and Serializable
объекты из одного действия в другое.
Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);
Получение данных пакета из активности Android
Вы можете получить информацию, используя getData()
методы объекта Intent. Объект Intent можно получить с помощью getIntent()
метода.
Intent intent = getIntent();
if (null != intent) { //Null Checking
String StrData= intent.getStringExtra(KEY);
int NoOfData = intent.getIntExtra(KEY, defaultValue);
boolean booleanData = intent.getBooleanExtra(KEY, defaultValue);
char charData = intent.getCharExtra(KEY, defaultValue);
}
Вы можете передавать значения из одного действия в другое, используя Bundle. В своей текущей деятельности создайте пакет и установите пакет для определенного значения и передайте этот пакет намерению.
Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);
Теперь в вашем NewActivity вы можете получить этот пакет и получить свою ценность.
Bundle bundle = getArguments();
String value = bundle.getString(key);
Вы также можете передать данные через намерение. В своей текущей деятельности установите намерение, как это,
Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);
Теперь в вашей NewActivity вы можете получить это значение из намерения следующим образом:
String value = getIntent().getExtras().getString(key);
Напишите, что это деятельность, в которой вы находитесь:
Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtras("string_name","string_to_pass");
startActivity(intent);
В NextActivity.java
Intent getIntent = getIntent();
//call a TextView object to set the string to
TextView text = (TextView)findViewById(R.id.textview_id);
text.setText(getIntent.getStringExtra("string_name"));
Это работает для меня, вы можете попробовать это.
Вы можете использовать этот код в своей первой деятельности :
Intent i = new Intent(Context, your second activity.class);
i.putExtra("key_value", "your object");
startActivity(i);
и получить объект во второй деятельности :
Intent in = getIntent();
Bundle content = in.getExtras();
// check null
if (content != null) {
String content = content_search.getString("key_value");
}