私のAndroidアプリケーションに問題があります
TextViewでテキストを動的に更新しようとしていますが、UIに変更はありません。テキストが変更された場合にコードをチェックインすると(例えばトーストやデバッガを表示するなど)、GUIは更新されません。ここ
は私のコードです:Android runOnUiThreadはレイアウト要素を更新しません
<TextView
android:id="@+id/textViewNick"
android:gravity="bottom|left"
android:layout_height="wrap_content"
android:layout_width="match_parent" />
public void changeNick(final String nick)
{
this.runOnUiThread(new Runnable()
{
@Override
public void run()
{
View view = View.inflate(MyApplication.getAppContext(), R.layout.activity_nick, null);
TextView textViewNick = (TextView) view.findViewById(R.id.textViewNick);
textViewNick.setText(nick);
}
});
}
changeNick()
メソッドは他のクラスから呼び出されます。
誰もがなぜそうであり、それを修正する方法を知っていますか?前もって感謝します。
EDIT
私はchangeNick()
方法が活動のonCreate()
前に呼び出されていることが分かりました。 onCreate()
に最後の命令としてフラグを追加し、changeNick()
を呼び出す前にチェックしましたが、それでも役に立たず、IllegalStateException "onCreate()の前にアクティビティで利用できないシステムサービス"が表示されます。私はその活動の2つの異なるインスタンスを持っていたので
は、changeNick()
方法が活動のonCreate()
前に呼び出された
を解決しました。私はまだ作成されていないものに対して `changeNick()を実行していたので、NullPointerExceptionが発生しました。
とにかく、ありがとうございました。
でテキストを変更する必要はありませんあなたはホスティングアクティビティのコンテキストでビューを膨らませる試みたことがありますか?私はあなたがアプリケーションのコンテキストを使用しているのを見て、それはあなたが望むものを与えないかもしれません。 – Benstrom
こんにちはそれは解決され、またはまだいくつかの問題が残っている? –