0

残念ながら文字列として0(FALSE)または1(TRUE)を返すPHPスクリプトを呼び出すAndroidアプリがあります。したがって、私のJavaコードにはString result、「0」または「1」の変数があります。この文字列が BOM で始まる可能性があることはわかっているので (ここにいる皆さんに感謝します)、そうであれば削除します。

実際には必要ありませんが、その結果が文字列ではなく整数であると気分が良くなるとしましょう。string から int という名前へのキャストはcode機能しているようです。少なくとも私は何も起こらないと思います。

しかし、キャストされた int like を使用しif (code == 1)たり、Toast を介して表示したりすると、アプリがクラッシュします。私はそれを示すことができるので、Toastこの文字列を int にキャストするのに失敗する可能性があることはわかりません。result == "1"result.length() == 1

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.makeTextString(CharSequence)またはが必要ですintが、これ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)

public static 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

したがって、文字列 valueOf(code) を makeText(params) の 2 番目のパラメーターとして使用します。

整数 (コード) 引数の文字列表現を返します。

于 2013-05-13T11:39:23.723 に答える
0

Android Api では、トーストのコンストラクターは次のとおりです: Toast.makeText(Context context, int resId, int duration)

「resId」は文字列の参照ですが、文字列オブジェクトではありません:

例: resId= R.string.helloworld

于 2013-05-13T11:43:03.790 に答える
0

Toastライブラリによると、 Toast.makeText(Context, int, int)はその整数をリソース ID として使用して、リソース内の文字列を検索します。関数がスローするのと同じ整数を持つリソースがないためですResources.NotFoundException

したがって、int値を表示するには、それをテキストに戻す必要があります。

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