1

おい。私はAndroidを始めたばかりです。2つのLinearLayoutsでViewFlipperレイアウトを使用しています。最初のレイアウトには、2番目のレイアウトに切り替えるボタンがあります。3000ms後に最初のレイアウトに切り替わるタイマーを追加したいと思います。スレッドで試しましたが、機能しませんでした(他のスレッドのUI要素と通信できません)。

私のコード:

パブリッククラステストはアクティビティを拡張します{

ViewFlipper f;
LinearLayout l1;
LinearLayout l2;
Button b1;

Thread s;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    f = (ViewFlipper) findViewById(R.id.f);
    l1 = (LinearLayout) findViewById(R.id.l1);
    l2 = (LinearLayout) findViewById(R.id.l2);
    b1 = (Button) findViewById(R.id.b1);

    updateSwitch = new Thread() {
        @Override
        public void run() {
            try {sleep(3000);
            } catch (InterruptedException e) {
            } finally {f.showPrevious();}
        }
    };

    b1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            f.setAnimation(AnimationUtils.loadAnimation(v.getContext(), R.anim.push_left_in));
            lFlipper.showNext();
            updateSwitch.start();
        }
    });
}

}

私の推測では、新しいスレッドをメインスレッドに接続する何らかのハンドラーが必要だと思います。コードを更新してください。Thx10x。

4

1 に答える 1

2

タイマーからのUIの更新に関する技術記事を読む必要があります

于 2010-07-23T12:06:13.593 に答える