2011-06-21 48 views
0

我在register()方法上面添加了一個開關盒,並且我遇到了致命異常,並且如果我刪除了開關盒,它的工作正常。如果我在註冊方法中使用onclicklistner,它也爲我工作,但我想實現切換案例,我該怎麼做?Android:開關盒的致命異常

在此先感謝...!

這是我的代碼。

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); 

這些[R我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

實際上在你的代碼中有一個NullPointerException。嘗試在使用前初始化稱爲性別的變量。像這樣的東西。字符串gender = null或「」;。 – Varundroid

+0

@Varundroid嗨,做了同樣的掃管笏你說過,但這次錯誤r像這樣06-21 19:12:51.885:錯誤/ AndroidRuntime(1218):java.lang.RuntimeException:無法實例化活動ComponentInfo {com。 soap/com.soap.Register}:java.lang.NullPointerException 06-21 19:12:51.885:ERROR/AndroidRuntime(1218):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java ERROR/AndroidRuntime(1218) :at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) ERROR/AndroidRuntime(1218):at android.app.ActivityThread.access $ 2300(ActivityThread.java:125) – Randroid

+0

什麼是'gender.equals(「M 「);'應該這樣做嗎?它會返回一個布爾值而不會改變任何東西。字符串賦值是'gender =」M「;'。 – Haphazard

回答

1

regmalebtnregfemalebtn可能無效。確保您的活動中的setContentViewfindViewById()調用之前被調用。否則,他們將返回null。

+0

謝謝你的迴應,在主要功能只有我補充了一切,我的意思是整個代碼是在main()內。你能幫我解碼嗎? – Randroid

+0

@Raghu,我沒有看到setContentView的調用? –

+0

我添加了代碼,你現在可以看到它 – Randroid