2011-06-21 7 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); 

これらは私の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という変数を初期化してみてください。このようなもの。文字列gender = nullまたは ""; – Varundroid

+0

@Varundroidこんにちは、私は言ったが、今回はエラーがこのようなエラー06-21 19:12:51.885:ERROR/AndroidRuntime(1218):java.lang.RuntimeException:アクティビティをインスタンス化することができません。 soap/com.soap.Register}:java.lang.NullPointerException 06-21 19:12:51.885:ERROR/AndroidRuntime(1218):android.app.ActivityThread.performLaunchActivity(ActivityThread.java ERROR/AndroidRuntime(1218) :android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) ERROR/AndroidRuntime(1218):android.app.ActivityThread.access $ 2300(ActivityThread.java:125) – Randroid

+0

「gender.equals(M)」とは何ですか?文字列の代入は 'gender =" M ";'。 – Haphazard

答えて

1

regmalebtnまたはregfemalebtnをRはおそらくnullです。 findViewById()が呼び出される前に、アクティビティ内のsetContentViewが呼び出されていることを確認してください。それ以外の場合、nullを返します。

+0

主な機能だけで、私は全体のコードがmain()内にあることを意味してすべてを追加していただきありがとうございます。コードを教えてくれませんか? – Randroid

+0

@Raghu、setContentViewの呼び出しが表示されませんか? –

+0

私は今すぐ見ることができるコードを追加しました – Randroid

関連する問題