Android-onclick,更改文本视图内容、背景颜色并设置可见性

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

嗨,我是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并进行更改

  • 文本视图的背景为#000000
  • 将文本设置为@+sting/text2
点击按钮2,我想去活动2和

  • 将文本视图设置为可见:消失(不可见)
我试着这样做,但没有结果

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

我相信有两种方法可以实现你想要的。其中之一是传递一个标志,表示已按下了哪个按钮,并相应地采取行动

  • 在Activity1中,如果按下按钮1,则传递整数1,如果按下按钮2,则传递整数2,因此按如下方式更改单击侦听器:

    public void doTHIS(View view) {
        Intent intent = new Intent(this, Activity2.class);
        intent.putExtra("button", 1);
        startActivity(intent);
    }
    

  • 在Activity2的onCreate()中,检查调用此活动的按钮,并进行更改(注意:我们在setContentView()之后进行此操作):


  • 阅读有关在活动和之间传递数据的更多信息。

    您面临的问题是什么?活动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
    }