Intereting Posts
Скрытие заголовка панели действий не работает в старых версиях Android (с помощью ActionBarSherlock) Как изменить заголовки HTTP-запросов из приложения Android? Как очистить SharedPreferences вне приложения Android Уведомление Android .addAction устарело в api 23 Google place API для android найти город Очень простой код, но получил ошибку «Активность была уничтожена» при использовании фрагмента Android Radial / Pie Menu RunTimeException в эспрессо Android при выборе spinner в диалоговом окне ListView с использованием двух курсорных адаптеров? Android WebView 302 Redirect – Сотовые Как поддержать GESTURE, левое / правое скольжение, много эффектов перехода в приложении Android Как поместить 9 кнопок в 3 ряда в макете xroid? Невозможно разрешить ошибку суперкласса при ссылке на библиотеку .jar Возможно ли запустить диалоговое окно «Диалог» из «Предпочтения» в «Предпочтение»? Можно ли использовать MapView с FragmentManager и ListFragment

Как использовать putExtra () и getExtra () для строковых данных

Может кто-нибудь, пожалуйста, скажите мне, как именно использовать getExtra() и putExtra() для Intent. На самом деле у меня есть строковая переменная say 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() . Я получаю введенное значение как строку, тогда мне нужно передать эти данные.

Solutions Collecting From Web of "Как использовать putExtra () и getExtra () для строковых данных"

Используйте это, чтобы «поместить» файл …

 Intent i = new Intent(FirstScreen.this, SecondScreen.class); String strName = null; i.putExtra("STRING_I_NEED", strName); 

Затем, чтобы получить значение, попробуйте что-то вроде:

 String newString; if (savedInstanceState == null) { Bundle extras = getIntent().getExtras(); if(extras == null) { newString= null; } else { newString= extras.getString("STRING_I_NEED"); } } else { newString= (String) savedInstanceState.getSerializable("STRING_I_NEED"); } 

Сначала Screen.java

 text=(TextView)findViewById(R.id.tv1); edit=(EditText)findViewById(R.id.edit); button=(Button)findViewById(R.id.bt1); button.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { String s=edit.getText().toString(); Intent ii=new Intent(MainActivity.this, newclass.class); ii.putExtra("name", s); startActivity(ii); } }); 

Второй экран.

 public class newclass extends Activity { private TextView Textv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.intent); Textv = (TextView)findViewById(R.id.tv2); Intent iin= getIntent(); Bundle b = iin.getExtras(); if(b!=null) { String j =(String) b.get("name"); Textv.setText(j); } } } 

Лучший способ …

SendingActivity

 Intent intent = new Intent(SendingActivity.this, RecievingActivity.class); intent.putExtra("keyName", value); // pass your values and retrieve them in the other Activity using keyName startActivity(intent); 

RecievingActivity

  Bundle extras = intent.getExtras(); if(extras != null) String data = extras.getString("keyName"); // retrieve the data using keyName 

/// самый короткий способ получить данные.

 String data = getIntent().getExtras().getString("keyName","defaultKey"); 

// Для этого требуется api 12. // второй параметр является необязательным. Если keyName имеет значение null, то в качестве данных используйте defaultkey по defaultkey .

Это то, что я использовал, надеюсь, это помогает кому-то … просто и эмоционально.

Отправлять данные

  intent = new Intent(getActivity(), CheckinActivity.class); intent.putExtra("mealID", meal.Meald); startActivity(intent); 

получить данные

  int mealId; Intent intent = getIntent(); Bundle bundle = intent.getExtras(); if(bundle != null){ mealId = bundle.getInt("mealID"); } 

ура!

Очень просто реализовать intent в Android. Вам нужно перейти от одного действия к другому, у нас есть два метода putExtra(); И getExtra(); Теперь я покажу вам пример.

  Intent intent = new Intent(activity_registration.this, activity_Login.class); intent.putExtra("AnyKeyName", Email.getText().toString()); // pass your values and retrieve them in the other Activity using AnyKeyName startActivity(intent); 

Теперь нам нужно получить значение из параметра AnyKeyName , указанный ниже код поможет в этом

  String data = getIntent().getExtras().getString("AnyKeyName"); textview.setText(data); 

Мы можем легко установить принимаемое значение из Intent , где бы мы ни находились.

Более простой

Сторона отправителя

 Intent i = new Intent(SourceActiviti.this,TargetActivity.class); i.putExtra("id","string data"); startActivity(i) 

Сторона приемника

 Intent i = new Intent(SourceActiviti.this,TargetActivity.class); String strData = i.getStringExtra("id"); 
 Intent intent = new Intent(view.getContext(), ApplicationActivity.class); intent.putExtra("key", value); startActivity(intent); 

Вызванная деятельность.

 Intent intent = getIntent(); Bundle bundle = intent.getExtras(); if(bundle != null){ mealId = bundle.getInt("key"); } 

Положить функцию

 etname=(EditText)findViewById(R.id.Name); tvname=(TextView)findViewById(R.id.tvName); b1= (ImageButton) findViewById(R.id.Submit); b1.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { String s=etname.getText().toString(); Intent ii=new Intent(getApplicationContext(), MainActivity2.class); ii.putExtra("name", s); Toast.makeText(getApplicationContext(),"Page 222", Toast.LENGTH_LONG).show(); startActivity(ii); } }); getfunction public class MainActivity2 extends Activity { TextView tvname; EditText etname; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_activity2); tvname = (TextView)findViewById(R.id.tvName); etname=(EditText)findViewById(R.id.Name); Intent iin= getIntent(); Bundle b = iin.getExtras(); if(b!=null) { String j2 =(String) b.get("name"); etname.setText(j2); Toast.makeText(getApplicationContext(),"ok",Toast.LENGTH_LONG).show(); } } 

Push-данные

 import android.content.Intent; ... Intent intent = new Intent( this, MyActivity.class ); intent.putExtra( "paramName", "paramValue" ); startActivity( intent ); 

Вышеуказанный код может находиться внутри основного activity . « MyActivity.class » – это второе действие, которое мы хотим запустить; Он должен быть явно включен в ваш файл AndroidManifest.xml .

 <activity android:name=".MyActivity" /> 

Вытянуть данные

 import android.os.Bundle; ... Bundle extras = getIntent().getExtras(); if (extras != null) { String myParam = extras.getString("paramName"); } else { //..oops! } 

В этом примере приведенный выше код будет находиться внутри вашего файла MyActivity.java .

Gotchas

Этот метод может передавать только strings . Итак, скажем, вам нужно передать ArrayList в ListActivity ; Возможным обходным путем является передача разделенной запятой строки, а затем ее разделение с другой стороны.

Альтернативные решения

Использовать SharedPreferences

Простой,

  EditText name= (EditText) findViewById(R.id.editTextName); Button button= (Button) findViewById(R.id.buttonGo); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this,Main2Activity.class); i.putExtra("name",name.getText().toString()); startActivity(i); } }); 

Во второй операции-

  @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); TextView t = (TextView) findViewById(R.id.textView); Bundle bundle=getIntent().getExtras(); String s=bundle.getString("name"); t.setText(s); } 

Вы можете добавить условия if / else, если хотите.

Сначала поставить строку

 Intent secondIntent = new Intent(this, typeof(SecondActivity)); secondIntent.PutExtra("message", "Greetings from MainActivity"); 

Получить после этого

 var message = this.Intent.GetStringExtra("message"); 

это все 😉