18

似たようなスレッドがたくさんあることは知っていますが、それらを調べてもまだ問題がわかりません。私のプログラムはハンドラーに到達しますが、常にキャッチ例外「メッセージが処理されていません」を返します。

TextView を宣言しましたprivate TextView chatbox;

onCreate の下に次のものがあります。

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        setUpViews();
        setUpListener();
    }

setUpViews() スニペットは次のようになります。

 private void setUpViews() {
    chatbox = (TextView) findViewById(R.id.chatbox);
    }

ハンドラ:

public Handler mHandler = new Handler(Looper.getMainLooper()){
        @Override
        public void handleMessage(Message msg){
            try{
                chatbox.setText("Got it!");
            }catch(Exception e){
                Log.i("MYLOG", "Message was not handled.");
            }

        }
    };

main.xml ファイルのスニペット:

<TextView
        android:id="@+id/chatbox"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:textAppearance="?android:attr/textAppearanceLarge" />
4

7 に答える 7

53

今後の参考のために、ViewPager の各タブに 1 つずつ、複数のフラグメントがありました。1 つの TextView のid2 つのフラグメントで同じものがあり、競合が発生しました。私は同じものを持っていることに気づかなかったidので、すべてがうまく見え、エラーメッセージはありませんでしたが、テキストは単に変更されませんでした. したがって、 には一意の名前を使用することをお勧めしidます。

于 2015-01-23T21:46:15.990 に答える
2

あなたは私たちに先に進むために多くを与えていません。

コンソールにメッセージを出力する代わりに、例外スタック トレースを確認する必要があります。e.printStackTrace();

しかし、ここから、私が推測しなければならなかった場合、メインスレッドから TextView のテキストを設定しているように見えます。ヌルポインタ例外。

于 2013-08-21T01:12:16.893 に答える
0

このままでOK!

private void setUpViews() {
    chatbox = (TextView) findViewById(R.id.chatbox);
    chatbox.setText("Got it!");
}
于 2013-08-21T00:54:58.590 に答える