Android,为我的按钮添加条件(短信应用)
Android, add a condition to my button (SMS app)
我做了一个短信应用(我是新手)。当用户按下按钮时,一条消息将发送到用户输入的号码。没关系!但是当没有数字(Textview 为空)时,应用程序崩溃。所以我尝试添加一个条件,当 Textview 为空时发送 Toast,如果它不是空的发送消息,这里是我的代码。我尝试了不同的方法,但 Else 中的 body 仍然被激活了吗?希望有人能帮助我:).
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[=12=]0(Fragment.java:34)
at c.timno.smsgsm20.Fragment.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)
尝试
if(TextUtils.isEmpty(nyanumtxt.getText().toString()))
我认为 nyanum 文本包含空格,这就是执行 else 条件的原因。
试试这个
if(TextUtils.isEmpty(nyanumtxt.getText().toString().trim())){
//your code
}
else{
//your code
}
我做了一个短信应用(我是新手)。当用户按下按钮时,一条消息将发送到用户输入的号码。没关系!但是当没有数字(Textview 为空)时,应用程序崩溃。所以我尝试添加一个条件,当 Textview 为空时发送 Toast,如果它不是空的发送消息,这里是我的代码。我尝试了不同的方法,但 Else 中的 body 仍然被激活了吗?希望有人能帮助我:).
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[=12=]0(Fragment.java:34)
at c.timno.smsgsm20.Fragment.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)
尝试
if(TextUtils.isEmpty(nyanumtxt.getText().toString()))
我认为 nyanum 文本包含空格,这就是执行 else 条件的原因。 试试这个
if(TextUtils.isEmpty(nyanumtxt.getText().toString().trim())){
//your code
}
else{
//your code
}