Android

How do you pass a string from one activity to another? [duplicate]

Как передать строку из одного действия в другое?

Мне интересно, как передать и прочитать строку, которая находится в одном действии, из другого действия. У меня есть два действия. Я назову их Activity1 и Activity2. У меня есть строка в Activity1 с именем course. Я хочу прочитать эту строку в Activity2.

Я пытался это сделать, но строка вышла пустой.

public class Activity2 extends Activity1 {

Я видел, как люди используют функцию Intent, но я не мог понять, как ее использовать.

Есть предложения? Спасибо!

Переведено автоматически
Ответ 1

Передавайте значения, используя intents.

В вашем первом действии

 Intent i= new Intent("com.example.secondActivity");
i.putExtra("key",mystring);
// for explicit intents
// Intent i= new Intent(ActivityName.this,SecondActivity.class);
// parameter 1 is the key
// parameter 2 is the value
// your value
startActivity(i);

В вашем втором действии извлеките ее.

Bundle extras = getIntent().getExtras();
if (extras != null) {
String value = extras.getString("key");
//get the value based on the key
}

Чтобы передать пользовательские объекты, вы можете взглянуть на эту ссылку

http://www.technotalkative.com/android-send-object-from-one-activity-to-another-activity/

Ответ 2

ваше первое действие, Activity1

public class Activity1 extends Activity {
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity1);

btn=(Button) findViewById(R.id.payBtn);
btn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
Intent intent=new Intent(Activity1.this,Activity2.class);
intent.putExtra("course", "courseValue");
startActivity(intent);
}
});
}
}

Activity2
public class Activity2 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2);

String course=getIntent().getExtras().getString("course").toString();
Log.d("course",course);
}
}

Надеюсь, это поможет вам.

Ответ 3

Вы на правильном пути - вы используете намерение для запуска второго действия. Все, что вам нужно сделать, это добавить, intent.putExtra("title", stringObject); где stringObject - это строка, которую вы хотите передать, а title - это имя, которое вы хотите присвоить этому объекту. Вы используете это имя для ссылки на объект, переданный во втором действии, следующим образом:

String s = (String)getIntent().getExtras().getSerializable("title");
Ответ 4

Из действия 1 вызовите что-то вроде этого :

Intent intent= new Intent("path.secondActivity");
intent.putExtra("keyString",sampleString);
startActiivty(intent);

и в действии 2 попробуйте что-то вроде этого :

Bundle values = getIntent().getExtras();
if (values != null) {
String keyString = values.getString("keyString");
}
java android string android-activity