2011-02-03 3 views
0

私はまだJavaプログラミングに新しいので、これには明らかな答えがありますが、コードとWebを検索して、この問題。私は自分のアプリケーションのレイアウトファイルにこのメソッドを作成しました:Android SDK setTextはintとchar []要素を混同します

public void setNumLabels(char[] labels){ 
    int niCC = getChildCount(); 
    for(int c = 0;c < niCC; c++){ 
     if(getChildAt(c) instanceof TableRow){ 
      TableRow tr = (TableRow) getChildAt(c); 
      int trCC = tr.getChildCount(); 
      for(int rc = 0;rc < trCC;rc++){ 
       if(tr.getChildAt(rc) instanceof Button){ 
        ((Button) tr.getChildAt(rc)).setText(labels[c*3+rc],1); 
       } 
      } 
     } 
    } 

私がいる問題は、コンパイラ(と明らかにDalvikが)で、「ラベル[C * 3 + RC]」見るということですsetTextをcharではなくintとして返します。私は何が欠けていますか?今のところ、char []要素をStringに読み込んでsetTextに使用しましたが、それはやや控えめです。

答えて

1

ButtonクラスのsetTextメソッドのリストを見てください。

があります:私はunderstanません

  • setText(int, TextView.BufferType)
  • setText(int)
  • setText(CharSequence)
  • setText(CharSequence, TextView.BufferType)
  • setText(char[], int, int)

これらの方法のうちどれを使用しようとしていますか?私はあなたが正しく何をしたいのかを解釈した場合 、あなたがその呼び出しを置き換えることができます:

((Button) tr.getChildAt(rc)).setText(labels, c*3+rc, 1); 
+0

私はのsetTextの「CHAR []、int型、int型」バージョンを逃していました。それが私が必要とするものです。ありがとう! – Vic

1

私には何が欠けていますか?

Stringのインスタンスはオブジェクトです。 char[]はオブジェクトではありません。 charはオブジェクトではありません。 char[]Stringとはあまり関係ありません。 charはさらにStringとは関係がありません。

今のところ、char []要素をStringに読み込んでsetTextに使用しましたが、それはちょっと面白く見えます。

私はchar[]を削除して、Javaで意味のあることをします。 char[]は、あらゆる種類の問題(例えば、Unicodeのエンコーディングの問題)のために、Javaでは事実上使用されていません。たとえば、文字列の配列にはString[]を使用します。