Как передать значение из одного активити в значение кнопки другого активити?
В общем имеется код с Динамической генерацией кнопок, при нажатии на данную кнопку появляется форма(новая активити) и из поля (name of app) необходимо достать содержимое и установить как название кнопки.Сейчас просто стоит название "Account #...". Не могу догнать помогите пожалуйста.
Это активити с генерацией кнопок
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_form_second);
button=(FloatingActionButton)findViewById(R.id.fab);
linearLayout = (LinearLayout) findViewById(R.id.linearLayout);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Button b = new Button(getApplicationContext());
b.setText("Account №" + Integer.toString(countID + 1));
b.setLayoutParams(
new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT)
);
b.setId(USERID + countID);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Form_second.this, Form_Storage.class);
startActivity(intent);
// linearLayout.removeView(v);
}
});
linearLayout.addView(b);
countID++;
}
});
}
}
Это активити с вводом и сохранением данных тут по логике должно быть назначение для имени
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_storage);
btn1=(Button)findViewById(R.id.button_first1);
e1 = (EditText)findViewById(R.id.edit_password);
e2 = (EditText)findViewById(R.id.edit_password2);
e3 = (EditText)findViewById(R.id.edit_password3);
sharedpreferences = getSharedPreferences(mypreference, Context.MODE_PRIVATE);
if (sharedpreferences.contains(App)) {
e3.setText(sharedpreferences.getString(App, ""));
}
if (sharedpreferences.contains(Name)) {
e1.setText(sharedpreferences.getString(Name, ""));
}
if (sharedpreferences.contains(Email)) {
e2.setText(sharedpreferences.getString(Email, ""));
}
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String n = e1.getText().toString();
String e = e2.getText().toString();
String q = e3.getText().toString();
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString(App, q);
editor.putString(Name, n);
editor.putString(Email, e);
editor.commit();
Toast.makeText(getApplicationContext(), "Successfuly!", Toast.LENGTH_SHORT).show();
finish();
}
});
}
И как сделать так чтобы созданные кнопки не исчезали после перезапуска?
Ответы (1 шт):
Для передачи данных между Activity применяется метод putExtra(), который позволяет передать данные типов String, int, float, double, long, short, byte, char, массивы этих типов, либо объект интерфейса Serializable. Для этого:
Создать Intent, как Вы и сделали
Intent intent = new Intent(Form_second.this, Form_Storage.class);Добавить в intent данные, которые Вы хотите передать (в виде пары ключ-значение), например, так:
intent.putExtra("name", "button1");
где "name" - название extras (ключ), "button1" - значение, которое вы хотите передать.
Запустить Activity
startActivity(intent);Во втором Activity принять данные, например, так:
Intent intent = getIntent(); String name = intent.getStringExtra("name");
и использовать эти данные там, где нужно.
Учитывайте, что для разных типов данных методы разные. Для строк - getStringExtra(), для целых чисел int - getIntExtra() и так далее.