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

В общем имеется код с Динамической генерацией кнопок, при нажатии на данную кнопку появляется форма(новая активити) и из поля (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. Для этого:

  1. Создать Intent, как Вы и сделали

    Intent intent = new Intent(Form_second.this, Form_Storage.class);

  2. Добавить в intent данные, которые Вы хотите передать (в виде пары ключ-значение), например, так:

    intent.putExtra("name", "button1");

где "name" - название extras (ключ), "button1" - значение, которое вы хотите передать.

  1. Запустить Activity

    startActivity(intent);

  2. Во втором Activity принять данные, например, так:

    Intent intent = getIntent(); String name = intent.getStringExtra("name");

и использовать эти данные там, где нужно.

Учитывайте, что для разных типов данных методы разные. Для строк - getStringExtra(), для целых чисел int - getIntExtra() и так далее.

→ Ссылка