Сохранить значение в текстовом поле на экране 1, одновременно нажимая на экран 2, используя переменные и намерения - PullRequest
0 голосов
/ 10 мая 2018

У меня сначала 2 экрана, у меня есть текстовое поле, и когда я нажимаю кнопку, я перехожу на второй экран с данными из текстового поля, но при нажатии кнопки «Назад» с экрана 2 на экран 1. Я хочу, чтобы текстовое поле (экран 1) показывало ранее добавленные данные через переменные.

//////////////////////////////////// Код 1 экрана: /////// //////////////////////

package com.example.abids.savingdataonbackbutton;

import android.content.Intent;
import android.os.PersistableBundle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    Button button;
    EditText name;



    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button=(Button)findViewById(R.id.buttonNext1);
        name=(EditText)findViewById(R.id.editTextName);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                String namevalue= name.getText().toString();

                savedInstanceState.putString("MyString", "Welcome back to Android");
                Intent intent=new Intent(MainActivity.this,Main3Activity.class);

                intent.putExtra("Name",namevalue);





                startActivity(intent);

                }
        });


        }


}



////////////////**Screen 2 code:**////////////////////////////////////////////



package com.example.abids.savingdataonbackbutton;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import org.w3c.dom.Text;

public class Main3Activity extends AppCompatActivity {
    TextView t1;
    Button b1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);

        b1=(Button) findViewById(R.id.button);
        t1=(TextView)findViewById(R.id.textView2);


        t1=(TextView)findViewById(R.id.textView2);

        getIntent().getStringExtra("Name");
        t1.setText("Name :" +getIntent().getStringExtra("Name"));

        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent intent= new Intent(Main3Activity.this,MainActivity.class);
                startActivity(intent);






            }
        });





    }


}

1 Ответ

0 голосов
/ 10 мая 2018
Screen 2
package com.example.abids.savingdataonbackbutton;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import org.w3c.dom.Text;

public class Main3Activity extends AppCompatActivity {
    TextView t1;
    Button b1;
    String valueOfName;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);

        b1=(Button) findViewById(R.id.button);
        t1=(TextView)findViewById(R.id.textView2);


        t1=(TextView)findViewById(R.id.textView2);

        getIntent().getStringExtra("Name");
        valueOfName = getIntent().getStringExtra("Name");
        t1.setText("Name :" +getIntent().getStringExtra("Name"));

        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                screen2Done();
            }
            });
}

public void screen2Done() {
        Intent intent=new Intent();
        intent.putExtra("RESULT_STRING", valueOfName);
        setResult(RESULT_OK, intent);
        finish();
    }

@Override
    public void onBackPressed() {
        screen2Done();
    }

На экране 1 запишите значение в методе onActivityResult (), так же, как на экране 2.

...