NumberFormatException异常:无效INT - 字符串
我收到以下异常,同时试图从解析数列中检索号码 - NumberFormatException异常:无效INTNumberFormatException异常:无效INT - 字符串
我想找回号码,然后显示TextView的数量。我已经能够通过字符串来实现这一点,但在编号方面存在困难。
下面是logcat的消息:
09-02 10:00:27.881: E/AndroidRuntime(1267): FATAL EXCEPTION: main
09-02 10:00:27.881: E/AndroidRuntime(1267): Process: com.dooba.beta, PID: 1267
09-02 10:00:27.881: E/AndroidRuntime(1267): java.lang.NumberFormatException: Invalid int: "UserAge"
09-02 10:00:27.881: E/AndroidRuntime(1267): at java.lang.Integer.invalidInt(Integer.java:137)
09-02 10:00:27.881: E/AndroidRuntime(1267): at java.lang.Integer.parse(Integer.java:374)
09-02 10:00:27.881: E/AndroidRuntime(1267): at java.lang.Integer.parseInt(Integer.java:365)
09-02 10:00:27.881: E/AndroidRuntime(1267): at java.lang.Integer.parseInt(Integer.java:331)
09-02 10:00:27.881: E/AndroidRuntime(1267): at com.dooba.beta.Fragment1$6.done(Fragment1.java:371)
09-02 10:00:27.881: E/AndroidRuntime(1267): at com.parse.FindCallback.internalDone(FindCallback.java:45)
09-02 10:00:27.881: E/AndroidRuntime(1267): at com.parse.FindCallback.internalDone(FindCallback.java:31)
09-02 10:00:27.881: E/AndroidRuntime(1267): at com.parse.Parse$5$1.run(Parse.java:891)
09-02 10:00:27.881: E/AndroidRuntime(1267): at android.os.Handler.handleCallback(Handler.java:733)
09-02 10:00:27.881: E/AndroidRuntime(1267): at android.os.Handler.dispatchMessage(Handler.java:95)
09-02 10:00:27.881: E/AndroidRuntime(1267): at android.os.Looper.loop(Looper.java:136)
09-02 10:00:27.881: E/AndroidRuntime(1267): at android.app.ActivityThread.main(ActivityThread.java:5017)
09-02 10:00:27.881: E/AndroidRuntime(1267): at java.lang.reflect.Method.invokeNative(Native Method)
09-02 10:00:27.881: E/AndroidRuntime(1267): at java.lang.reflect.Method.invoke(Method.java:515)
09-02 10:00:27.881: E/AndroidRuntime(1267): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
09-02 10:00:27.881: E/AndroidRuntime(1267): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
09-02 10:00:27.881: E/AndroidRuntime(1267): at dalvik.system.NativeStart.main(Native Method)
下面是代码
query5.findInBackground(new FindCallback<ParseUser>() {
@Override
public void done(List<ParseUser> objects,ParseException e) {
for(int i=0;i<objects.size();i++){
// Do whatever you need to extract object from "users"
ParseQuery<ParseObject> query = ParseQuery.getQuery("User");
query.whereNotEqualTo("objectId", ParseUser.getCurrentUser()
.getObjectId());
// users with Gender = currentUser.Looking_Gender
query.whereEqualTo("Gender", userLookingGender);
// users with Looking_Gender = currentUser.Gender
query.whereEqualTo("Looking_Gender", userGender);
query.setLimit(1);
query.whereEqualTo("ActivityName", activityName);
query.whereGreaterThanOrEqualTo("UserAge", minimumAge);
query.whereLessThanOrEqualTo("UserAge", maximumAge);
mUserAgeRetrieved = (TextView) getActivity().findViewById(R.id.userlistage);
String str = "UserAge";
int iage = Integer.parseInt(str);
mUserAgeRetrieved.setText(iage);
}
}//for loop
});
只是为了对比,下面是我如何检索字符串:
mUserNameRetrieved.setText(objects.get(i).get("Name").toString());
“UserAge” 是指解析数字列,我打电话来检索它中的数字。
在此先感谢
这是什么意思?
String str = "UserAge";
int iage = Integer.parseInt(str);
mUserAgeRetrieved.setText(iage);
显然它会抛出一个NumberFormatException,因为“UserAge”不是一个数字!你在这里没有从你的ParseQuery中检索任何数字。
编辑: 使用mUserAgeRetrieved.setText(String.valueOf(objects.get(i).getInt(“UserAge”)))来检索数字。
我觉得我做错了什么,因为这段代码没有正确检索一个数字。 UserAge表示UserAge列。我知道这不是一个数字,但是这个列包含数字。 – John 2014-09-02 10:39:14
您可能只是在检索字符串时执行此操作,并在该字符串上调用Integer.parseInt()。 – 0101100101 2014-09-02 10:41:52
好的谢谢。这是我到目前为止所做的工作mUserAgeRetrieved.setText(objects.get(i).get(Integer.parseInt(“UserAge”))。toString()); 但我不能确切地这样做,因为get正在寻找一个字符串 – John 2014-09-02 10:51:51
你必须改变这一行:
String str = "UserAge";
到
String str = mUserAgeRetrieved.getText();
感谢您的快速响应,但那么我将如何引用UserAge列? – John 2014-09-02 10:35:58
'字符串str = “UserAge”; INT iage =的Integer.parseInt(STR);''== INT iage = Integer.parseInt(“UserAge”);'=='NumberFormatException'因为'“UserAge”'不是数字!这不是一个火箭科学...... – Selvin 2014-09-02 10:27:28