如何声明TextView变量以便我可以在任何地方使用它?

时间:2013-06-10 16:50:10

标签: android

我今天刚开始编写java / android编码,请原谅我,如果我是一个完全白痴的话。

过去一小时我一直面临这个问题,我试图谷歌但却找不到任何答案。

如何将TextView声明为静态/变量,以便只需键入“variablename”即可访问它。在我的代码中的任何地方?

我没有尝试从另一个活动访问TextView,这些活动都在同一个活动中。

这是我的代码看起来的样子(全部在mainactivity.java中):

public class MainActivity extends Activity {

    TextView test = (TextView)findViewById(R.id.textView2);

    public void registermessage(View view) {
        test.setText("Test");
    }
}

这不会在Eclipse中出现任何错误,但在我尝试在手机上运行时会强行关闭。

当我移动行时,我可以成功地将测试作为textview声明为公共空白,但我希望能够从活动中的任何空隙中使用变量test。

谢谢!

2 个答案:

答案 0 :(得分:6)

您必须在调用setcontentView方法后实例化变量,因此您必须执行以下操作:

public class MainActivity extends Activity {

TextView test;

@Override
onCreate(Bundle s){
    ...
    setContentView(R.layout.yourLayout);
    test = (TextView)findViewById(R.id.textView2);
}


public void registermessage(View view) {

    test.setText("Test");
}

答案 1 :(得分:2)

将其声明为您的活动的变量,并在调用setContentView()后对其进行初始化。如果您只是设置TextView的文字,则无需在函数中传递View参数。

public class MainActivity extends Activity {

    private TextView test;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_launch);
        test = (TextView)findViewById(R.id.textView2);
        registermessage();
    }

    public void registermessage() {    
        test.setText("Test");
    }