更新另一个活动中的多个按钮的settext

时间:2019-01-26 15:03:44

标签: android android-activity

我已经在stackoverflow中进行了广泛搜索,但是找不到答案。从其他活动中提取意图字符串时,更新MULTIPLE按钮上的settext的合适代码是什么?

我的mainActivity包含三个按钮,其中包含按国家/地区划分的三种不同货币。如果用户单击mainActivity中的按钮之一,则他们将转到secondActivity,在其中选择另一个国家。选择之后,它们将返回到mainActivity,并且所选国家/地区应替换按钮上的默认文本。

当我执行下面的代码时,每次我在secondActivity中选择一个选项时,所有按钮文本都会更改所选的选项。只能是被单击的按钮。

//mainActivity class
    region1 = (Button)findViewById(R.id.region1);
    region2 = (Button)findViewById(R.id.region2);
    region3 = (Button)findViewById(R.id.region3);

    region1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(MainActivity.this, List.class);
            startActivity(i);
        }
    });

    region2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(MainActivity.this, List.class);
            startActivity(i);
        }
    });

    region3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(MainActivity.this, List.class);
            startActivity(i);
        }
    });

    region1.setText(getIntent().getStringExtra("btn"));
    region2.setText(getIntent().getStringExtra("btn"));
    region3.setText(getIntent().getStringExtra("btn"));

//secondActivity class
        lst_eur.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(List.this, MainActivity.class);
                i.putExtra("btn", "EUR");
                startActivity(i);
            }
        });

        lst_gbp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(List.this, MainActivity.class);
                i.putExtra("btn", "GBP");
                startActivity(i);
            }
        });

        lst_jpy.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(List.this, MainActivity.class);
                i.putExtra("btn", "JPY");
                startActivity(i);
            }
        });
  1. 在mainActivity中,我单击region1
  2. 那把我带到了第二活动
  3. 我点击lst_eur
  4. 这使我回到了mainActivity,其中region1已从lst_eur的意图更新为

region2和region3不应更改,仅在经过上述类似过程后才会更改。

2 个答案:

答案 0 :(得分:0)

您可以简单地使用活动onPause()和onResume()方法来更新多个活动中的文本或从活动中返回。用这两种方法编写代码进行更新。

您也可以为此使用startActivityForResult。

答案 1 :(得分:0)

替换为该

if(getIntent().getStringExtra("btn").equels("EUR")){
 region1.setText(getIntent().getStringExtra("btn"));
 region2.setText("Default text");
 region3.setText("Default text");
}else if(getIntent().getStringExtra("btn").equels("GBP")){
 region1.setText("Default text");
 region2.setText(getIntent().getStringExtra("btn"));
 region3.setText("Default text");
}else if(getIntent().getStringExtra("btn").equels("JPY")){
 region1.setText("Default text");
 region2.setText("Default text");
 region3.setText(getIntent().getStringExtra("btn"));
}