找不到这个NullPointerException

Joe*_*Joe 0 android nullpointerexception android-manifest android-layout

我不断得到一个Unable to instantiate activity ComponentInfo... Caused by a NullPointerException at findViewById,我不知道它为什么扔它.我在我的设备中正确设置了我的元素ID,main.xml并且我已经尝试在每个线周围注释,看看哪条线有问题,但要让它运行w/o任何力量关闭我必须注释掉所有的功能程序.这是我的活动:

package fsg.dev.test.checkboxtest;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.SeekBar;

public class checkBoxTest extends Activity {
    private CheckBox checkbox = (CheckBox) findViewById(R.id.checkbox);
    //private SeekBar seekbar = (SeekBar) findViewById(R.id.seekbar);
    private View view = (View) findViewById(R.id.background);

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener(){
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){
            changeColor();
        }
    });
}

private void changeColor(){
    if(checkbox.isChecked()){
        view.setBackgroundColor(R.color.Blue);
        //view.setAlpha(.25);
    }
    else if(!checkbox.isChecked()){
        view.setBackgroundColor(R.color.White);
    }
}
Run Code Online (Sandbox Code Playgroud)

}

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="fsg.dev.test.checkboxtest"
  android:versionCode="1"
  android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" />

<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
    <activity android:name=".checkBoxTest"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

最后我的main.xml:

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

<CheckBox 
    android:text="Background Color" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:checked="false"
    android:id="@+id/checkbox">
</CheckBox>
<SeekBar 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent"
    android:id="@+id/seekbar" 
    android:layout_margin="10dip" >
</SeekBar>
<View
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/White"
    android:id="@+id/background">
</View>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

如果有人能帮助我缩小范围,这将是非常好的.

MBy*_*ByD 9

您需要使用findViewById后才setContentView:

....
public class checkBoxTest extends Activity {
    private CheckBox checkbox;
    private View view;

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    checkbox = (CheckBox) findViewById(R.id.checkbox);
    view = (View) findViewById(R.id.background);
    checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener(){
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){
            changeColor();
        }
    });
}
...
Run Code Online (Sandbox Code Playgroud)