android中的Button和TextView无法正常工作

时间:2012-06-28 16:36:13

标签: android

以下程序强制退出并崩溃,我不明白为什么,

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */

    TextView tv = (TextView) findViewById(R.id.text);
    Button btn1 = (Button) findViewById(R.id.button1);

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void clicked(View v) {

        tv.setText(btn1.getText());
    }
}

但是在移动

之后
TextView tv = (TextView) findViewById(R.id.text);
Button btn1 = (Button) findViewById(R.id.button1);

它所使用的点击功能内部,为什么会这样?

感谢您的帮助..

2 个答案:

答案 0 :(得分:6)

需要在findViewById()之后调用

setContentView(),否则它将始终返回null。

答案 1 :(得分:5)

使用以下代码,它将开始工作。

在onCreate()中使用setContentView()之前使用findViewById(),它将返回null。

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
/** Called when the activity is first created. */

private TextView tv;
private Button btn1;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    tv = (TextView) findViewById(R.id.text);
    btn1 = (Button) findViewById(R.id.button1);
}

public void clicked(View v) {

    tv.setText(btn1.getText());
}
}