Может кто-нибудь сказать, пожалуйста, как именно использовать getExtra()
и putExtra()
для намерений? На самом деле у меня есть строковая переменная, скажем, str, которая хранит некоторые строковые данные. Теперь я хочу отправить эти данные из одного действия в другое.
Intent i = new Intent(FirstScreen.this, SecondScreen.class);
String keyIdentifer = null;
i.putExtra(strName, keyIdentifer );
а затем в SecondScreen.java
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.table);
TextView userName = (TextView)findViewById(R.id.userName);
Bundle bundle = getIntent().getExtras();
if(bundle.getString("strName")!= null)
{
//TODO here get the string stored in the string variable and do
// setText() on userName
}
}
Я знаю, что это очень простой вопрос, но, к сожалению, я застрял здесь. Пожалуйста помоги.
Спасибо,
Редактировать: Здесь строка, которую я пытаюсь передать с одного экрана на другой, является динамической. То есть у меня есть editText, где я получаю строку независимо от типа пользователя. Затем с помощью myEditText.getText().toString()
. Я получаю введенное значение в виде строки, затем я должен передать эти данные.
android
android-intent
Шаиста Нааз
источник
источник
Ответы:
Используйте это, чтобы "положить" файл ...
Затем, чтобы получить значение, попробуйте что-то вроде:
источник
this.getActivity().getIntent().getExtras()
.первый Screen.java
Второй Screen.java
источник
Лучший метод ...
SendingActivity
RecievingActivity
/// кратчайший способ получения данных ..
// Для этого требуется API 12. // Второй параметр является необязательным. Если keyName равно нулю, используйте
defaultkey
как данные.источник
Это то, что я использовал, надеюсь, это поможет кому-то ... просто и эффективно.
отправить данные
получить данные
ура!
источник
В
intent
Android это очень легко реализовать . Для перехода от одного занятия к другому требуется два метода,putExtra();
иgetExtra();
сейчас я покажу вам пример.Теперь мы должны получить значение из
AnyKeyName
параметра, приведенный ниже код поможет в этомМы можем легко установить значение получения
Intent
, где бы мы ни требовались.источник
Небольшое дополнение: вам не нужно создавать собственное имя для ключа, android предоставляет их, например.
Intent.EXTRA_TEXT
, Изменение принятого ответа:источник
ApplicationActivity
источник
Обновление в классе Intent .
hasExtra()
для проверки, если намерение имеет данные о ключе.getStringExtra()
напрямую.Передать данные
Получить данные
Всегда ставьте ключи в константах, как лучшую практику.
источник
PutExtraConstants
интерфейс?PutExtraConstants
класс содержит только константы (public
,static
,final
). Так что лучше использовать интерфейс для констант.Более простой
сторона отправителя
сторона получателя
источник
Поместите строку в объект намерения
NextAcitvity в методе onCreate get String
это простой и короткий метод
источник
Отправить
получить
источник
поставить функцию
источник
Push Data
Код выше может быть внутри основного
activity
. «MyActivity.class
» - это второе, чтоActivity
мы хотим запустить; он должен быть явно включен в вашAndroidManifest.xml
файл.Вытащить данные
В этом примере приведенный выше код будет внутри вашего
MyActivity.java
файла.Gotchas
Этот метод может только пройти
strings
. Так скажем , вы должны пройтиArrayList
к вашемуListActivity
; Возможный обходной путь - передать строку через запятую, а затем разделить ее на другой стороне.Альтернативные решения
использование
SharedPreferences
источник
Простой, в первом занятии
Во втором занятии
источник
На FirstScreen.java
На SecondScreen.java
источник
поставить строку первым
получить его после этого
вот и все ;)
источник
Вы можете просто использовать статическую переменную для хранения строки вашего текста редактирования, а затем использовать эту переменную в другом классе. Надеюсь, что это решит вашу проблему
источник