как я могу использовать объект в моем файле из другого файла (Android Studio) - PullRequest
1 голос
/ 24 июня 2019

Здравствуйте. Я хочу вызвать объект (имя пользователя, имя, сообщение) из Mainactivity.java в Main2Activity.java. Первый макет: Пользователь вводит здесь имя, имя пользователя и сообщения и нажимает на кнопку
второй макет: информация, которую предоставил пользователь, отображается на странице Я хочу сохранить имя, имя пользователя и сообщения для использования во втором макете

https://ibb.co/BfsKMgf

public class MainActivity extends AppCompatActivity {

    public String username;
    public String name;
    public String posts;
    EditText usernameinput;
    EditText nameinput;
    EditText postsinput;
    Button confirme;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        usernameinput = (EditText)findViewById(R.id.username);
        nameinput = (EditText)findViewById(R.id.name);
        postsinput = (EditText)findViewById(R.id.posts);
        confirme = (Button)findViewById(R.id.confirme);
        username = usernameinput.getText().toString();

        confirme.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {

                name = nameinput.getText().toString();
                posts = postsinput.getText().toString();

                Intent otheractivity = new Intent(getApplicationContext(),Main2Activity.class);
                startActivity(otheractivity);
                finish();

                showToast(name);
                showToast(username);
                showToast(posts);


            }
        });



    }


    private void showToast(String text){
        Toast.makeText(MainActivity.this,text,Toast.LENGTH_SHORT).show();
    }

}

Ответы [ 2 ]

1 голос
/ 26 июня 2019

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

используя намерение передать данные

MainActivity.java

  nameEt = (EditText) findViewById(R.id.name_et);
    mobileEt = (EditText) findViewById(R.id.mobile_et);
    submitBtn = (Button) findViewById(R.id.submit_btn);
    submitBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            name=nameEt.getText().toString();
            mobile_number=mobileEt.getText().toString();
            Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
            intent.putExtra("name",name);
            intent.putExtra("mobile",mobile_number);
            startActivity(intent);
        }
    });

SecondActivity

 nameTv = (TextView) findViewById(R.id.name_tv);
    mobileTv = (TextView) findViewById(R.id.mobile_tv);

    String name,mobile_number;
    //get Intent data
    name=getIntent().getStringExtra("name");
    mobile_number=getIntent().getStringExtra("mobile");
    nameTv.setText(name);
    mobileTv.setText(mobile_number);

с использованием статической переменной

MainActivity.java публичное статическое строковое имя; public static String mobile_number;

 nameEt = (EditText) findViewById(R.id.name_et);
    mobileEt = (EditText) findViewById(R.id.mobile_et);
    submitBtn = (Button) findViewById(R.id.submit_btn);
    submitBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            name=nameEt.getText().toString();
            mobile_number=mobileEt.getText().toString();
            Intent intent=new Intent(FirstActivity.this,SecondActivity.class);

            startActivity(intent);
        }
    });

SecondActivity.java

nameTv = (TextView) findViewById(R.id.name_tv);
    mobileTv = (TextView) findViewById(R.id.mobile_tv);
 nameTv.setText(MainActivity.name);
 mobileTv .setText(MainActivity.mobile_number);
1 голос
/ 24 июня 2019

используя намерение передать данные из одного действия в другое или если вы можете использовать фрагмент, то используйте связку.следуйте этим инструкциям - https://developer.android.com/training/basics/firstapp/starting-activity#java

Вы должны изменить код.

Intent intent = new Intent(MainActivity.this,SecondActivity.class);
intent.putStringExtra("key1","editetextvalue")
intent.putStringExtra("key2","editetextvalue2")
startActivity(intent);

and get value in a second activity.
Intent intent = getIntent();
String key = intent.getStringExtra("key1")

please remember if you pass these key exact same get key other not get
...