2010-12-19 28 views
-1

のテキストは更新されません。なぜこれが機能しないのかわかりません。 TextViewは、ビュー内のタグから定義されます。基本TextViewにはテキストが設定されておらず、表示時にViewに設定したいとします。TextView.setText()の後にTextView.invalidate()が表示されない場合は、

私はonCreateとonStartに以下を配置しようとしましたが、動作しないようです。最後の2行はデバッグ用です。ヘッダーがテキストを取得することを確認できます。つまり、TextViewは実際には更新されません。何か案は?

TextView header=(TextView) findViewById(R.id.acheader); 
     header.setText(R.string.accounts); 
     header.invalidate(); 
     header=(TextView) findViewById(R.id.acheader); 
     String blah=(String) header.getText(); 
+0

私は 'header.invalidate();'はここでは必要ないと信じています。おそらく 'TextView'宣言をレイアウトXMLに投稿しますか? –

+0

問題はJavaコードではなく、マージとインクルードの使い方が間違っていることが判明しました。基本的に、ルートがタグであるレイアウトのビットを含める場合、タグでidを上書きすることはできません。だから、私は実際に右のTextViewを引っ張っていませんでした。私はこれを階層ビューアで見つけました。 – jfelectron

答えて

0

再び4行目のテキストを削除してください ヘッダ=(のTextView)findViewById(R.id.acheader)。

0
  1. header.invalidate()は不要です。

  2. String blah =(String)header.getText()try String blah = heager.getText()。toString();

なぜ、コードを使用してテキストビューで「setText()」を検証していますか? 実際の出力を確認できないのはなぜですか?

テキストビューの再描画はフレームワークによって処理され、一般的にアイテムの更新(ダーティーな四角形を特定する)を試み、それらのすべてを更新しようとしているため、上記のコードは使用しようとすると機能しない可能性があります。一度。あなたの関数が終了した後にうまくいくかもしれません。視覚的に検証しようとすると、最良の方法です。

+0

私は視覚的にビューを見ました。コードのチェックポイントは、どこで障害が発生していたかを確認することでした。また、.toString()とキャストとの比較は、内部のchar []からtoStringメソッドによってキャストされた、個人的なpref IMOです。 – jfelectron

+0

でも、TextViewのテキストは装飾を付けたSpannableにすることができるので、必ずしも '内部char []'ではありません – Axarydax

関連する問題