2016-11-18 2 views
-1

私はSMSアプリを作成しました(私は初心者です)。ユーザーがボタンを押すと、ユーザーが入力した番号にメッセージが送信されます。これは問題ありません。しかし、数字がない場合(Textviewは空です)、アプリケーションがクラッシュします。だから私はTextviewが空であるときに条件を追加しようとしました。私はさまざまな方法を試しましたが、Elseのボディはとにかく起動していますか?誰かが私を助けることを願って:)。Android、ボタンに条件を追加する(SMSアプリ)

sendSMSa2はマイボタンです。 番号はnyanumtxtです。

sendSMSa2.setOnClickListener(new View.OnClickListener() { 
               @Override 
               public void onClick(View v) { 


                 if(nyanumtxt.getText().toString().isEmpty()) { 

                 Toast.makeText(getActivity(), "No Number chossen", 
                   Toast.LENGTH_LONG).show(); 



                } else { 


                String myMsgrela1 = a2txt.getText().toString(); 
                String theNumberr = nyanumtxt.getText().toString(); 
                sendMsg(theNumberr, myMsgrela1); 
                Toast.makeText(getActivity(), "Message sent!", 
                  Toast.LENGTH_LONG).show(); 
               } 

              } 
              } 
       ); 

ログ猫

11-18 21:05:01.505 22083-22083/user.smsgsm20 E/AndroidRuntime: FATAL EXCEPTION: main 
 
                    Process: c.timno.smsgsm20, PID: 22083 
 
                    java.lang.NullPointerException 
 
                     at android.os.Parcel.readException(Parcel.java:1478) 
 
                     at android.os.Parcel.readException(Parcel.java:1426) 
 
                     at com.android.internal.telephony.ISms$Stub$Proxy.sendText(ISms.java:881) 
 
                     at android.telephony.SmsManager.sendTextMessage(SmsManager.java:181) 
 
                     at c.timno.smsgsm20.Fragment.sendMsg(Fragment.java:359) 
 
                     at c.timno.smsgsm20.Fragment.access$000(Fragment.java:34) 
 
                     at c.timno.smsgsm20.Fragment$1.onClick(Fragment.java:184) 
 
                     at android.view.View.performClick(View.java:4443) 
 
                     at android.view.View$PerformClick.run(View.java:18475) 
 
                     at android.os.Handler.handleCallback(Handler.java:733) 
 
                     at android.os.Handler.dispatchMessage(Handler.java:95) 
 
                     at android.os.Looper.loop(Looper.java:136) 
 
                     at android.app.ActivityThread.main(ActivityThread.java:5103) 
 
                     at java.lang.reflect.Method.invokeNative(Native Method) 
 
                     at java.lang.reflect.Method.invoke(Method.java:515) 
 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788) 
 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604) 
 
                     at dalvik.system.NativeStart.main(Native Method)

答えて

1

試してみてください。 これを試してください

if(TextUtils.isEmpty(nyanumtxt.getText().toString().trim())){ 
//your code 
} 
else{ 
//your code 
} 
+0

ありがとうございました!これはトリックでした!.trim()についてもっと読むつもりです。私のコードの正しいパスに:D。 – Tim

0

私はnyanumテキストが他の条件が実行された理由です空白が含まれていると思います

if(TextUtils.isEmpty(nyanumtxt.getText().toString())) 
+0

こんにちは感謝します。私はまだクラッシュする、私のログのハイライト、 "sendMsg(theNumberr、myMsgrela1);" .. :( – Tim

+0

あなたはlogcatを投稿できますか? – rhari

+0

数字を入力するとうまくいきます。 – Tim

関連する問題