0

我有一个调用 PHP 脚本的 Android 应用程序,它返回 0 (FALSE) 或 1 (TRUE) - 不幸的是作为一个字符串。所以在我的 Java 代码中,我的变量String result是“0”或“1”。我知道(在此感谢你们)这个字符串可以以 BOM 开头,所以我删除它,如果是的话。

这不是真的有必要,但是假设我将结果作为整数而不是字符串,我会感觉更好。从 string 到 int named 的转换code似乎有效。至少我没有看到任何事情发生。

但是,当我想使用转换后的 int likeif (code == 1)或通过 Toast 显示它时,我的应用程序崩溃了。我可以用Toast那个result == "1"和那个来展示,result.length() == 1所以我看不出我怎么可能无法将此字符串转换为 int:

String result = postData("some stuff I send to PHP");

if (result.codePointAt(0) == 65279) // which is the BOM
   {result = result.substring(1, result.length());}

int code = Integer.parseInt(result); // <- does not crash here...

// but here...
Toast.makeText(ListView_Confirmation.this, code, Toast.LENGTH_LONG).show();

我也尝试使用valueOf()和添加.toString(),但它一直在崩溃。我在这里想念什么?

4

5 回答 5

4
  Use the following way to show toast 
    Toast.makeText(ListView_Confirmation.this, ""+code, Toast.LENGTH_LONG).show();
于 2013-05-13T11:37:02.203 回答
2

Toast.makeText需要 aString(CharSequence)或 anint但这int表示要使用的字符串资源的资源 ID(例如R.string.app_name:)

改为尝试:

Toast.makeText(ListView_Confirmation.this, String.valueOf(code), Toast.LENGTH_LONG).show();
于 2013-05-13T11:38:59.340 回答
1

使用以下

Toast.makeText(ListView_Confirmation.this, String.valueOf(code), Toast.LENGTH_LONG).show();

http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#valueOf(int)

公共静态 Toast makeText(上下文上下文,CharSequence 文本,int 持续时间)

制作只包含文本视图的标准吐司。

参数

context      The context to use. Usually your Application or Activity object.
text         The text to show. Can be formatted text.
duration     How long to display the message. Either LENGTH_SHORT or LENGTH_LONG

http://developer.android.com/reference/android/widget/Toast.html

所以使用 String valueOf(code) 作为 makeText(params) 的第二个参数

返回整数(代码)参数的字符串表示形式。

于 2013-05-13T11:39:23.723 回答
0

根据ToastToast.makeText(Context, int, int)使用该整数作为资源 ID 在您的资源中查找字符串。现在,由于您没有具有相同整数的资源,因此函数 throws Resources.NotFoundException

因此,要显示您的int值,您必须将其更改回文本。

Toast.makeText(ListView_Confirmation.this, String.valueOf(code), Toast.LENGTH_LONG).show();
于 2013-05-13T11:41:32.667 回答
0

在android Api中,toast的构造函数是:Toast.makeText(Context context, int resId, int duration)

“resId”是您的字符串的引用,但不是字符串对象:

示例: resId= R.string.helloworld

于 2013-05-13T11:43:03.790 回答