Как изменить значение переменной после нажатия кнопки и получить это значение в другой активности - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть кнопка. Когда я нажимаю кнопку, я хочу изменить значение переменной на 3. В другом упражнении я хочу иметь возможность получить значение переменной и выполнить некоторые вычисления на основе этого значения.

Я пытался использовать методы получения и установки и просто традиционно изменять значения, и, похоже, ничего не работает.

//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 обновляло текстовое представление с текстом "days is 3"

Однако он просто выдает ошибку, потому что не может правильно получить значение целых дней.

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

попробуйте следующий обновленный код:

//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/

0 голосов
/ 03 апреля 2019

Просто объявите статическую переменную в одном действии и используйте ее во втором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...