3

findViewById(int) を使用して Java ファイルの TextView を参照しようとしましたが、正しいレイアウト ファイルで setContentView(int) を呼び出した後でも null が返されるようです。

Help.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/tvBoxHelp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/help"
    android:layout_gravity="center"
    android:textSize="20sp" />

</LinearLayout>

Help.java

 public class Help extends Activity {

private TextView tv;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    setContentView(R.layout.help);
    tv = (TextView) findViewById(R.id.tvBoxHelp);
    tv.setText("text");
    super.onCreate(savedInstanceState);
    }
  }

前もって感謝します。

4

3 に答える 3

4

あなたのsuper.onCreate(savedInstanceState);立場が問題を引き起こしています。

Help.java をこれに置き換えます

public class Help extends Activity {

    private TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.help);

        tv = (TextView) findViewById(R.id.tvBoxHelp);
        tv.setText("text");

    }
}
于 2012-12-25T07:39:28.010 に答える
1

super.onCreate(savedInstanceState);コンテンツビューを設定する前にスーパーメソッド ( ) を呼び出します

于 2012-12-25T07:41:01.007 に答える
0
 public class Help extends Activity {

private TextView tv;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    //
    setContentView(R.layout.help);
    tv = (TextView) findViewById(R.id.tvBoxHelp);
    tv.setText("text");

 //This should be called first super.onCreate(savedInstanceState);
    super.onCreate(savedInstanceState);
    }
  }
于 2012-12-25T07:48:42.037 に答える