Android-onclick,更改文本视图内容、背景颜色并设置可见性
嗨,我是Android开发的新手。我的问题是: 在中,有两项活动,如下所示Android-onclick,更改文本视图内容、背景颜色并设置可见性,android,android-intent,background,textview,Android,Android Intent,Background,Textview,嗨,我是Android开发的新手。我的问题是: 在中,有两项活动,如下所示 Activity1.class XML-->有两个按钮 按钮1(Id:@+Id/btn1,onclick:doTHIS)和 按钮2(Id:@+Id/btn2,点击:doTHAT) Activity2.class XML-->有一个包含此参数的文本视图 文本视图(Id:@+Id/texter,Text:@+string/text1,背景:#ffffff) 点击按钮1后,我想进入活动2并进行更改 文本视图的背景为#00
- Activity1.class XML-->有两个按钮 按钮1(Id:@+Id/btn1,onclick:doTHIS)和 按钮2(Id:@+Id/btn2,点击:doTHAT)
- Activity2.class XML-->有一个包含此参数的文本视图 文本视图(Id:@+Id/texter,Text:@+string/text1,背景:#ffffff)
- 文本视图的背景为#000000
- 将文本设置为@+sting/text2
- 将文本视图设置为可见:消失(不可见)
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);
有人能帮我找出解决问题的方法吗?在加载其他版面之前,您不能更改该版面上的控件。换句话说,当您在Activity1中时,您不能更改Activity2布局中的TextView 我相信有两种方法可以实现你想要的。其中之一是传递一个标志,表示已按下了哪个按钮,并相应地采取行动
public void doTHIS(View view) {
Intent intent = new Intent(this, Activity2.class);
intent.putExtra("button", 1);
startActivity(intent);
}
及
阅读有关在活动和之间传递数据的更多信息。您面临的问题是什么?活动2是否未启动?谢谢您的回复。它在Activity2上崩溃。事实上,我知道如何加载活动2。但是我无法更改文本视图的参数(文本字符串、背景和可见性);导入android.os.Bundle;公共类LetStore扩展活动{@Override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity2);};
public void doTHAT(View view) {
Intent intent = new Intent(this, Activity2.class);
intent.putExtra("button", 2);
startActivity(intent);
}
@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
}