您好我是Android开发的新手。这是我的问题:
有两个活动,如下所示。
Activity1.class XML - >有两个按钮
Button1 (Id:@ + id / btn1,onclick:doTHIS)和 Button2 (Id:@ + id / btn2,onclick:doTHAT)
Activity2.class XML - >有一个带有此参数的TextView
Textview (ID:@ + id / texter,文字:@ + string / text1,背景:#ffffff)
点击Button1,我想转到Activity2并更改
点击Button2,我想去Activity2和
我尝试这样做没有结果。
public void doTHIS(View view){
TextView tv= (TextView)findViewById(R.id.texter);
tv.setText(getResources().getString(R.string.text2));
tv.setTextColor(Color.RED);
tv.setVisibility(View.GONE);
Intent intent = new Intent (this, Activity2.class);
startActivity(intent);
任何人都可以帮我弄清楚如何解决我的问题吗?
答案 0 :(得分:0)
在加载之前,您无法更改其他布局上的控件。换句话说,当您在Activity1中时,无法更改Activity2布局中的TextView。
我确信有几种方法可以达到你想要的效果。其中一个是将Intent中的一个标志传递给Activity2,指示按下了哪个按钮,然后采取相应的行动。
在Activity1中,如果按下Button1,则传递整数1,如果按下Button2,则传递2,因此按如下所示更改点击侦听器:
public void doTHIS(View view) {
Intent intent = new Intent(this, Activity2.class);
intent.putExtra("button", 1);
startActivity(intent);
}
和
public void doTHAT(View view) {
Intent intent = new Intent(this, Activity2.class);
intent.putExtra("button", 2);
startActivity(intent);
}
在Activity2中,在onCreate()中,检查调用此活动的按钮,并进行更改(注意:我们在setContentView()之后执行此操作):
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2);
//now, let's check which button got us here
int button = getIntent().getIntExtra("button", 1);
TextView tv = (TextView) findViewById(R.id.texter);
switch (button) {
case 1:
tv.setText(getResources().getString(R.string.text2));
tv.setTextColor(Color.RED);
//whatever else you want to do
break;
case 2:
tv.setVisibility(View.GONE);
break;
}
//rest of your code
}