簡體   English   中英

單擊按鈕后如何更改變量的值並在不同的活動中獲取該值

[英]How to change value of variable after button click and get that value in different activity

我有一個按鈕。 單擊按鈕時,我想將變量的值更改為3。在另一個活動中,我希望能夠獲取變量的值並基於該值進行一些計算。

我嘗試使用getters和setters方法,並且傳統上只是更改值而似乎沒有任何效果。

//MainActivity.java


        mButtonChoice2 = (Button)findViewById(R.id.choice2);

        mButtonChoice2.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view){
                //My logic for Button goes in here

                if (mButtonChoice2.getText() == "Three"){
                    setDays(3);
                    openActivity();

                }

     }


   public int getDays() {

        return days;
    }

    public void setDays(int value){
        days = value;
    }

    public void openActivity() {
        Intent intent = new Intent(this, SecondActivity.class);
        startActivity(intent);
    }



//SecondActivity.java



public class SecondActivity extends AppCompatActivity {

    private TextView textview;
    private MainActivity obj = new MainActivity();

    Integer days = obj.getDays();

     protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        textview = findViewById(R.id.program);

        if (days == 3) {
            textview.setText("Days is 3");
        }
        else {
            textview.setText(days);
        }

我希望SecondActivity中的textview用“ days is 3”更新textview文本

但是,它只是出錯了,因為它不能正確接收整數天的值。

嘗試以下更新的代碼:

//MainActivity.java


        mButtonChoice2 = (Button)findViewById(R.id.choice2);

        mButtonChoice2.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view){
                //My logic for Button goes in here

                if (mButtonChoice2.getText() == "Three"){
                    setDays(3);
                    openActivity();

                }

     }


   public int getDays() {

        return days;
    }

    public void setDays(int value){
        days = value;
    }

    public void openActivity() {
        Intent intent = new Intent(this, SecondActivity.class);
        intent.putExtra ("days",days);
        startActivity(intent);
    }



//SecondActivity.java



public class SecondActivity extends AppCompatActivity {

    private TextView textview;
    private MainActivity obj = new MainActivity();

   // Integer days = obj.getDays();
   int days=0;

     protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

       Intent intent=getIntent();days=intent.getIntExtra ("days",0);


        textview = findViewById(R.id.program);

        if (days == 3) {
            textview.setText("Days is 3");
        }
        else {
            textview.setText(days);
        }

參考: https : //developer.android.com/reference/android/content/Intent https://www.dev2qa.com/passing-data-between-activities-android-tutorial/

只需在一個活動中聲明一個靜態變量,然后在第二個活動中使用它即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM