タイトルのとおり、Textview のコンテンツを更新するときに問題が発生しています。向きを変えるまでは、すべてうまくいきます。
Textview を保持するアクティビティの onCreate は次のとおりです。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.transacao);
screenTextView = (TextView) findViewById(R.id.lblStatusTrn);
screenTextView.setText(screenMessage);
//...
}
Textview を更新するコードは次のとおりです。
private void setScreenMessage(String message) {
screenMessage = message;
screenTextView = (TextView) findViewById(R.id.lblStatusTrn);
screenTextView.setText(screenMessage);
}
エラーは発生しませんが、setScreenMessage を呼び出した後、Textview は更新されません。これはすべて、向きの変更後に発生します。向きを変えなければ、すべてうまくいきます。
ここで同様の質問をいくつか調べましたが、どれもうまくいかなかったようです。
編集 1 : 関連するかどうかはわかりませんが、setScreenMessage は別のスレッドから Handler を介して呼び出されます。ハンドラーのコード:
public void handleMessage(android.os.Message message) {
//...
// This command calls setScreenMessage
command.execute();
}
EDIT 2 :どうやら、ブロードキャストを使用するとうまくいきました。しかし、表示されているのはこの参照ではありませんが、アクティビティへの有効な参照があった可能性があるかどうかを考えさせられます。だとしたら、無駄な参考書に記憶を奪われているかもしれません。出来ますか?これを確認する方法はありますか?