3

私は現在、Uni 用の最初の Android アプリに取り組んでいます。私はゆっくりとそこにたどり着いていますが、特定のセクションで立ち往生しています。

コースワークには、UIthread のスレッドとは別のスレッドが必要です。私の考えでは、ユーザーは Name_edit.java で自分の名前を設定してから、board.java (別のアクティビティ) に移動すると、2 つのテキストビューに入力された内容が表示されるようになります。

Name_edit.xml には、2 つの編集テキストがあります。

board.java には 2 つのテキストビューがあります (現在、それぞれ P1 と P2 に設定されています)。OnCreate() では、現在、(name_edit) 2 つの edittext から 2 つの値を取得し、これを textviews に設定するハンドラーに取り組んでいます。これには 2 つのハンドラー (値ごとに 1 つ) が必要になると思います。board.java で、標準の findViewById を実行しました。

ハンドラーとスレッドに関するヘルプは役に立ちます。

ハンドラーコードを投稿しますが、現在は常に変化しています。私が取り組んでいるのは

handler = new Handler() {
    public void handleMessage (Message msg) {
        TextViewP1.setText(msg)
    }
};

現在、msg は name_edit からの edittext に設定されていないことに注意してください

4

1 に答える 1

1

試しましたrunOnUiThread()か?UI 要素は UI スレッドからのみ変更でき、ここでのハンドラーは独自のスレッドで実行されます。

handler = new Handler() {
    public void handleMessage (Message msg) {
        ((Activity)context).runOnUiThread(new Runnable() {
            public void run() {
               TextViewP1.setText(msg);
            }
        });
    }
}

ハンドラーが Activity クラスにある場合、wherecontextを置き換えることができます。[class name].this

ドキュメント: http://developer.android.com/reference/android/app/Activity.html#runOnUiThread(java.lang.Runnable )

于 2013-01-06T18:57:45.350 に答える