0

ThreadUIを更新するために取り組んでいます。住所を入力するときに州
を尋ねる基本的な登録フォームがあります。これらの 2 つの値を、要約のある最終画面に表示します。

現在、それぞれのフィールドでEditの値を取得する情報を編集するボタンがあるため、以下の方法を使用しています。

しかし、その動作には一貫性がありません。つまり、両方が読み込まれる場合もあれば、一方が読み込まれる場合もあれば、どれも読み込まれない場合もあります。

アプリで使用していることに注意ViewFlipperしてください(何か関係があるかどうかはわかりません)。

私はその日から頭を悩ませていますが、同じことに対する解決策/提案は見つかりませんでした。

どんな助けでも感謝します。

Thread thread = new Thread() {
                    public void run() {
                        while (true) {
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    setState.setText(dispState.getText());
                                    setCountry.setText(dispCoun.getText());
                                }
                            });
                            constants.threadCount =0;
                            try {
                                if (constants.threadCount == 0)
                                    Thread.sleep(500);
                                    constants.threadCount = 1;
                                } else {
                                    break;
                                }
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                };
                thread.start();

編集

edit.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
// DO SOMETHING
// Starting Thread
vf.setDisplayedChild(9);
}
});
4

1 に答える 1

0

以下は私のために働いた:

constants.threadCount = 0;
                final Handler handler=new Handler();
                final Runnable r = new Runnable()
                {
                    public void run() 
                    {
                        if (constants.threadCount <4) {
                            setState.setText(dispState.getText());
                            setCountry.setText(dispCoun.getText());

                        handler.postDelayed(this, 1000);
                        constants.threadCount++;
                        }
                    }
                };

                Thread threadnew = new Thread()
                {
                    @Override
                    public void run() {
                        try {
                            if (constants.threadCount <4) {
                                sleep(1000);
                                handler.post(r);
                                constants.threadCount++;
                            }
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                };

                threadnew.start();
于 2013-02-12T12:07:19.787 に答える