我在register()方法上方添加了一个switch case,我收到了Fatal异常,如果我删除了switch case,它的工作正常。如果我在寄存器方法中使用onclicklistner它也适用于我,但我想实现开关盒,我该怎么做?
提前致谢...!
这是我的代码。
Thread t;
ProgressDialog dialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button signin = (Button) findViewById(R.id.regsubmitbtn);
signin.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
showDialog(0);
t = new Thread() {
public void run() {
register();
}
};
t.start();
}
});
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case 0: {
dialog = new ProgressDialog(this);
dialog.setMessage("Please wait while connecting...");
dialog.setIndeterminate(true);
dialog.setCancelable(true);
return dialog;
}
}
return null;
}
Button signin = (Button) findViewById(R.id.regsubmitbtn);
signin.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
showDialog(0);
t = new Thread() {
public void run() {
register();
}
};
t.start();
}
});
}
String gender;
Button regmalebtn = (Button) findViewById(R.id.regmalebtn);
Button regfemalebtn = (Button) findViewById(R.id.regfemalebtn);
// Here in the above line I m getting the error//
public void onClick(View v) {
switch(v.getId()){
case R.id.regmalebtn:
gender = regmalebtn.getText().toString();
gender.equals("M");
// request.addProperty("gender",gender );
break;
case R.id.regfemalebtn:
gender = regfemalebtn.getText().toString();
gender.equals("F");
// request.addProperty("gender", gender);
break;
default:
break;
}
}
public void register() {
Log.v(TAG, "Trying to Login");
EditText etxt_user = (EditText) findViewById(R.id.regetfirstname);
EditText etxt_pass = (EditText) findViewById(R.id.regetlastname);
EditText etxt_dob = (EditText) findViewById(R.id.regetdob);
// in the above line i m getting error//
EditText etxt_email = (EditText) findViewById(R.id.regetemail);
EditText etxt_password = (EditText) findViewById(R.id.regetpwd);
EditText etxt_confirmpassword = (EditText) findViewById(R.id.regetrepwd);
EditText etxt_mobno = (EditText) findViewById(R.id.regetmobno);
Button regmalebtn = (Button) findViewById(R.id.regmalebtn);
// in the above line I m getting the error//
Button regfemalebtn = (Button) findViewById(R.id.regfemalebtn);
// String deviceid = null;
String fname = etxt_user.getText().toString();
String lname = etxt_pass.getText().toString();
String dob = etxt_dob.getText().toString();
String contact = etxt_mobno.getText().toString();
String password;
String confirmpassword ;
String email = etxt_email.getText().toString();
password = etxt_password.getText().toString();
confirmpassword = etxt_confirmpassword.getText().toString();
final SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);
// in the above line I m getting errors//
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(request);
// in the above line i m getting error
HttpTransportSE aht = new HttpTransportSE(URL);
这些是我的logcat消息
06-21 18:59:34.435: ERROR/AndroidRuntime(1164): FATAL EXCEPTION: main
06-21 18:59:34.435: ERROR/AndroidRuntime(1164): java.lang.RuntimeException:
Unable to instantiate activity ComponentInfo{com.soap/com.soap.Register}:
java.lang.NullPointerException
06-21 18:59:34.435: ERROR/AndroidRuntime(1164):
ERROR/AndroidRuntime(1164): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
ERROR/AndroidRuntime(1164): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
ERROR/AndroidRuntime(1164): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
ERROR/AndroidRuntime(1164): at android.os.Handler.dispatchMessage(Handler.java:99)
ERROR/AndroidRuntime(1164): at android.os.Looper.loop(Looper.java:123)
ERROR/AndroidRuntime(1164): at android.app.ActivityThread.main(ActivityThread.java:4627)
ERROR/AndroidRuntime(1164): at java.lang.reflect.Method.invokeNative(Native Method)
ERROR/AndroidRuntime(1164): at java.lang.reflect.Method.invoke(Method.java:521)
答案 0 :(得分:1)
regmalebtn
或regfemalebtn
可能为空。确保在setContentView
来电之前调用您活动中的findViewById()
。否则,它们将返回null。