android中判断是否为空遇到的问题

来源:互联网 发布:jquery 转js 编辑:程序博客网 时间:2024/05/22 14:17

LogCat

08-21 15:16:02.377: E/AndroidRuntime(9022): java.lang.RuntimeException: Unable to instantiate application com.util.App: java.lang.IllegalStateException: Unable to get package info for com.example.oldtest; is package not installed?
08-21 15:16:02.377: E/AndroidRuntime(9022):  at android.app.LoadedApk.makeApplication(LoadedApk.java:575)
08-21 15:16:02.377: E/AndroidRuntime(9022):  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4506)
08-21 15:16:02.377: E/AndroidRuntime(9022):  at android.app.ActivityThread.access$1500(ActivityThread.java:148)
08-21 15:16:02.377: E/AndroidRuntime(9022):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1343)
08-21 15:16:02.377: E/AndroidRuntime(9022):  at android.os.Handler.dispatchMessage(Handler.java:102)
08-21 15:16:02.377: E/AndroidRuntime(9022):  at android.os.Looper.loop(Looper.java:135)
08-21 15:16:02.377: E/AndroidRuntime(9022):  at android.app.ActivityThread.main(ActivityThread.java:5240)
08-21 15:16:02.377: E/AndroidRuntime(9022):  at java.lang.reflect.Method.invoke(Native Method)
08-21 15:16:02.377: E/AndroidRuntime(9022):  at java.lang.reflect.Method.invoke(Method.java:372)
08-21 15:16:02.377: E/AndroidRuntime(9022):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:950)
08-21 15:16:02.377: E/AndroidRuntime(9022):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
08-21 15:16:02.377: E/AndroidRuntime(9022): Caused by: java.lang.IllegalStateException: Unable to get package info for com.example.oldtest; is package not installed?
08-21 15:16:02.377: E/AndroidRuntime(9022):  at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:409)
08-21 15:16:02.377: E/AndroidRuntime(9022):  at android.app.LoadedApk.makeApplication(LoadedApk.java:567)
08-21 15:16:02.377: E/AndroidRuntime(9022):  ... 10 more

 

---------------------------------------------------------------------------------------------------------------------------------------------------------

str1.equals(str2)来判断,不能用==或者!=来判断,原因:
  因为String是引用类型的,不是基本数据类型,所以它们的比较是使用地址和值(相当于C中的指针)来比较的,因为它们是不同的对象,有不同的地址,所以str1!=str2永远都是true。而str1==str2永远是false。如果你中想比较它们的数值是否相等就使用str1.equals(str2)。使用==或者!=是对象的比较,它们为真的条件是:不仅要求是同一对象,而值也要求相等。
  因此判断editText输入是否为空,可以这样来:

if("".equals(editText.getText().toString().trim()))

 

 

上面这行代码的意思是:
  ""代表空,什么都没输入。
  equals的意思是""跟equals后面括弧里的东西进行对比,如果一样就为空。括弧里的就是实际输入的东西
  editText.getText()就是取得里面的东西。toString()转化为字符串。trim()的意思是,拿到里面的东西后,把前后的空格都过滤掉。
  直接在xml里设置editText的输入限制为:数字 这样程序就不用判断了,要么什么都没有,要么就是数字。

 

android:inputType="number"

 

 

 

edittext的属性里,还可以限制最多可以输入的字符个数,即length。
  android:maxLength="3"
  一个综合的下例子:

 

if("".equals(et.getText().toString()))
  {
  new AlertDialog.Builder(this)
  .setMessage("身高不能为空")
  .setPositiveButton("Ok", null)
  .show();
  return;
  }

 

 

还可以这样来判断是否输入为空

mEditText.getText().length()== 0
  mEditText.getText().toString() == null
  mEditText.getText().toString().equals("")

 

参考网址:http://bbs.9ria.com/thread-224662-1-1.html

 

 

0 0
原创粉丝点击