提问者:小点点

如何从另一个活动类设置文本


我一直被困在这个问题上太久了。我认为这很简单,但我是一个新手android开发人员,所以你的帮助将不胜感激。

我有两个活动。我的主要活动布局有一个文本视图和一个按钮。我正在尝试做的是实现按钮以从另一个活动类(Btn类)更改文本视图的文本。

这是我的Btn课

public class Btn extends Activity implements OnClickListener {
    Button btn;
    TextView textBox;

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        btn = (Button) findViewById(R.id.btn);  
        textBox = (TextView)findViewById(R.id.address);
        btn.setOnClickListener(this);           
    }

    @Override
    public void onClick(View v) {
        textBox.setText("Test Test");
    }

}

现在,这编译和工程罚款,但当我按下按钮没有发生.我想知道如何改变文本视图的文本,当我按下按钮.我知道如何做到这一点在我的主要活动类,但我想做它从另一个类。


共2个答案

匿名用户

匿名用户

请尝试实现以下代码,

MainActivity.java

    public class MainActivity extends Activity implements OnClickListener {

    Button btn;
    TextView textBox;

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        btn = (Button) findViewById(R.id.btn);  
        textBox = (TextView)findViewById(R.id.address);
        btn.setOnClickListener(this);           
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.btn:
            String strTemp = "Test Test";
            textBox.setText(strTemp);

            Intent intent = new Intent(MainActivity.this, Second.class);
            intent.putExtra("tempstring", strTemp);
            startActivity(intent);
            break;

        default:
            break;
        }

    }
}

Second.java

 public class Second extends Activity {

    private TextView txtTemp;

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.second); 

        txtTemp = (TextView) findViewById(R.id.txt_temp);

        Intent intent = getIntent();
        String strTemp = intent.getStringExtra("tempstring");

        txtTemp.setText(strTemp);
    }
}

希望它对你有用。