如何从另一个文件使用文件中的对象(Android Studio)

时间:2019-06-24 13:57:25

标签: java android object android-intent android-activity

你好,我想从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 个答案:

答案 0 :(得分:1)

使用意图将数据从一个活动传递到另一个活动,或者如果可以使用片段,则使用捆绑软件。 遵循这些教程-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

答案 1 :(得分:1)

将数据从一个活动传递到第二个活动的许多方法,例如使用 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      公共静态字符串名称;      公共静态字符串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);