0

ユーザーがボタンをクリックすると、単純なアプリケーションを実行しています。背景色は、を使用してさまざまな色に変化し続けRandom()ます。どうすればそれを実装できますか? ここに私のコードがあります

if (looper == false) 
{
    Jbutton1.setText("loop now ");
    int color;
    Random rnd = new Random();
    color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256),                             rnd.nextInt(256));
    JmyScreen.setBackgroundColor(color);
    looper = true;
}
else
{
    Toast.makeText(getApplicationContext(), "stop loop",Toast.LENGTH_SHORT).show();
    Jbutton1.setText("stop looping");
    JmyScreen.setBackgroundColor(Color.WHITE);
    looper = false;
}
4

1 に答える 1

0

ここでは、ボタンの背景が 4 秒ごとに定期的に変更されます。ここでは、背景の ID を渡し、それが機能するかどうかを確認します。
お役に立てれば :)

public class MyActivity extends Activity {

        private Runnable mEndlessRunnable;

        @Override
        public void onCreate(Bundle savedState) {
            super.onCreate(savedState);
            setContentView(R.layout.my_activity);

            mEndlessRunnable = new UpdateRunnable(new Handler(), new Button[] {
                (Button) findViewById(R.id.button_1),
                (Button) findViewById(R.id.button_2)
            });
            mEndlessRunnable.run();

        }

        private static class UpdateRunnable extends Runnable {

            private Random mRand = new Random();
            private Handler mHandler;
            private Button[] mButtons;

            private Button mCurButton;
            private int mState;

            public UpdateRunnable(Handler handler, Button[] buttons) {
                mHandler = handler;
                mButtons = buttons;
            }

            public void run() {
                // select a button if one is not selected
                if (mCurButton == null) {
                    mCurButton = mButtons[mRand.nextInt(mButtons.length)];
                }
                // check internal state, `0` means first bg change, `1` means last
                switch (mState) {
                case 0:
                    mCurButton.setBackgroundResource(R.drawable.blue_bg);
                    mState = 1;
                    break;
                case 1:
                    mCurButton.setBackgroundResource(R.drawable.yellow_bg);
                    // reset state and nullify so this continues endlessly
                    mState = 0;
                    mCurButton = null;
                    break;
                }

                mHandler.postDelayed(this, 4000);
            }
        }
    }
于 2013-01-21T10:49:52.407 に答える