2013-05-29 27 views
0

我试图通过按下按钮来打开活动包含5个编辑文本和1个微调框 当我按下按钮时显示不幸关闭login.apk。按钮点击显示android中的java.lang.null指针异常

这里是registartion的.java

public class Registration extends Activity { 
EditText name,password,email,dob,design,cpassword; 
Button submit,cancel; 
Spinner gender; 
SQLiteDatabase db; 
String Gen; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.registration); 
    name=(EditText)findViewById(R.id.editText1); 
    email=(EditText) findViewById(R.id.editText2); 
    gender=(Spinner) findViewById(R.id.spinner1); 
    dob=(EditText) findViewById(R.id.editText3); 
    design=(EditText) findViewById(R.id.editText4); 
    password=(EditText) findViewById(R.id.editText5); 
    cpassword=(EditText) findViewById(R.id.editText6); 

    db=openOrCreateDatabase("MobWalletDB",MODE_PRIVATE, null); 
    List<String> list=new ArrayList<String>(); 
    list.add("Male"); 
    list.add("Female"); 
    ArrayAdapter<String> mAdapter= new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list); 
    mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    gender.setAdapter(mAdapter); 

    submit.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View arg0) { 

      MODELUserData userGivenDataObject=new MODELUserData(name.getText().toString() 
                   ,email.getText().toString(),Gen,dob.getText().toString(),design.getText().toString(),password.getText().toString()); 

      if(QUERYUserReg.registerUser(db, userGivenDataObject)){ 
       Toast.makeText(getBaseContext(), "User Registered!!!", Toast.LENGTH_SHORT).show(); 
       startActivity(new Intent(Registration.this,Login.class)); 

      }else 
       Toast.makeText(getBaseContext(), "Registration Failure!!!", Toast.LENGTH_SHORT).show();    

     } 
    }); 

    gender.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View v, int in, 
       long lg) { 
      // TODO Auto-generated method stub 
      Gen=parent.getItemAtPosition(in).toString(); 
     } 
    }); 

} 

}

的代码片段和logcat中显示以下错误

05-29 07:22:48.331: E/AndroidRuntime(13236): FATAL EXCEPTION: main05-29 07:22:48.331:  
E/AndroidRuntime(13236): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.login/com.example.login.Registration}: java.lang.NullPointerException 
... 
... 

05-29 07:22:48.331: E/AndroidRuntime(13236): Caused by: java.lang.NullPointerException 
05-29 07:22:48.331: E/AndroidRuntime(13236): at com.example.login.Registration.onCreate(Registration.java:49) 
05-29 07:22:48.331: E/AndroidRuntime(13236): at android.app.Activity.performCreate(Activity.java:5104) 
05-29 07:22:48.331: E/AndroidRuntime(13236): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
05-29 07:22:48.331: E/AndroidRuntime(13236): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
05-29 07:22:48.331: E/AndroidRuntime(13236): ... 11 more 

请告诉我什么错误?
在此先感谢

+3

后Registration.onCreate – Blackbelt

+0

请发表您的代码。我们掌握的信息越多,我们就越容易找到问题。 – knennigtri

+0

其中是Registration.java中的行号49? –

回答

0

你永远不会初始化submit。在Jave中,你不能声明和使用一个对象而不创建它(你应该调用它的新运算符)。也许你错过了submit

1

findViewById我认为坠机是在这里:

submit.setOnClickListener(new View.OnClickListener() { 

你缺少一个:

submit = (Button) findViewById(R.id.submit); // Or whatever your ID is 

您还需要初始化cancel

+0

问题解决了,谢谢 – user1922355

0

初始化您的提交和取消按钮。你是一个非初始化的变量

submit = (Button) findViewById(R.id.id_of_your_submit_button); 
cancel= (Button) findViewById(R.id.id_of_your_cancel_button); 
0

您提交不inintialized上注册Activity.butü使用的onclick监听器提交button.so初始化它first.hope乌尔问题可能得到解决按钮ID写入onClickListener。

0

试试这个代码:

submit = (Button) findViewById(R.id.yourID); 
Submit.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View arg0) { 
     // your code here 
    } 
} 
+0

欢迎来到Stack Overflow,当回答问题时,请尝试解释为什么您在回复中发布了代码。 – KyleMit