0

こんにちは、以下のコードは正しく動作していないようです。何か間違っているのでしょうか?

基本的に何が起こるかというと、文字列を受け取り、prd|50126057|12bars|5それを 3 つの異なる textView に分割しようとしています。実行すると、最初の textView に prd のみが表示され、他のものは変更されません。なぜこれが起こるのですか?

ログで動作していることがわかりますが、他のテキストビューには表示されていません。

どんな助けでも大歓迎です、そして前もって感謝します。

また、これがすでに回答されている場合は申し訳ありません。ここで検索を行いましたが、何も見つかりませんでした。

public void messageReceived(String message) {

    String response = message;
    String[] words = response.split("\\|");
    TextView tv1 = (TextView) findViewById(R.id.textView1);
    TextView tv2 = (TextView) findViewById(R.id.textView2);
    TextView tv3 = (TextView) findViewById(R.id.textView3);

    tv1.setText(words[0]);
    tv2.setText(words[1]);
    tv3.setText(words[2]);
    Log.e("items-->", "" + words[0] + " " + words[1] + " " + words[2]+ " " + words[3]);

    publishProgress(message);
}
4

6 に答える 6

1
 String[] words;
 String s="prd|50126057|12bars|5"; 
 words= s.split("\\|");
 for(int i=0;i<words.length;i++)
 {
    System.out.println("Shifted: " +words[i]);
 }
于 2013-04-11T11:19:11.263 に答える
0

コードは問題ないようです。呼び出されていないか、間違った文字列が渡されています。

ログを追加して、何が起こるかを確認することをお勧めします。

Log.d("~~~","@@@@ response=["+response+"]");

そして、他の人が提案したようにwords.length、アイテム。

于 2013-04-11T11:41:24.430 に答える
0

使用する:

String response = "abc|asd|asd|asd";
String[] words = response.split("\\|");
Log.e("items-->", "" + words[0] + " " + words[1] + " " + words[2]+ " " + words[3]);

o/p :

04-11 16:55:58.216: E/items-->(3885): abc asd asd asd

Edited:

String response = "abc|asd|asd|asd";

    String[] words = response.split("\\|");

   // Log.e("items-->", "" + words[0] + " " + words[1] + " " + words[2]+ " " + words[3]);

   TextView tv = (TextView)findViewById(R.id.text);

   tv.setText("" + words[0] + " " + words[1] + " " + words[2]+ " " + words[3]);

最終編集日:

        String response = "abc|asd|asd|asd";

        String[] words = response.split("\\|");

        // Log.e("items-->", "" + words[0] + " " + words[1] + " " + words[2]+
        // " " + words[3]);

        TextView tv = (TextView) findViewById(R.id.textView1);
        TextView tv1 = (TextView) findViewById(R.id.textView2);
        TextView tv2 = (TextView) findViewById(R.id.textView3);
        TextView tv3 = (TextView) findViewById(R.id.textView4);

        tv.setText("" + words[0]);
        tv1.setText("" + words[1]);
        tv2.setText("" + words[2]);
        tv3.setText("" + words[3]);

ここに画像の説明を入力

于 2013-04-11T11:20:41.283 に答える
-2
String response = "prd|50126057|12bars|5";
String[] words = response.split("|");
Toast.makeText(mActivity, words[0]+"::"+words[1]+"::"+words[2]+"::"+words[3],Toast.LENGTH_SHORT).show();

上記のコードは、その点で何の問題もありません。messageReceived が呼び出されているかどうかを確認してください。

于 2013-04-11T11:20:05.397 に答える