我已经在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);
}
});
region2和region3不应更改,仅在经过上述类似过程后才会更改。
答案 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"));
}