-2

ボタンが textView の色を WHITE に変更するようにしようとしていますが、2 回押すと BLUE に変更され、3 回押すと RED に変更されます。私が試してみると、明らかに最後の(RED)だけが選択され、再び変更されることはありません。どうすればこれを行うことができるか、誰にもアイデアがありますか? 本当に立ち往生。コードは次のとおりです。

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    setContentView(R.layout.activity_main);
    dc1 = (TextView)findViewById(R.id.digitalClock1);
    bt1 = (Button)findViewById(R.id.button1);

    Handler handler = new RandomMoveHandler((TextView) findViewById(R.id.digitalClock1));
    handler.sendEmptyMessage(0);

    bt1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            dc1.setTextColor(Color.WHITE);
            dc1.setTextColor(Color.BLUE);
            dc1.setTextColor(Color.RED);
        }
    });

}
4

5 に答える 5

1
private int count = 0;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_main);
dc1 = (TextView)findViewById(R.id.digitalClock1);
bt1 = (Button)findViewById(R.id.button1);

Handler handler = new RandomMoveHandler((TextView) findViewById(R.id.digitalClock1));
handler.sendEmptyMessage(0);

  bt1.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch(count)
        {
         case 0: dc1.setTextColor(Color.WHITE); count++; break;
         case 1: dc1.setTextColor(Color.BLUE); count++; break;
         case 2: dc1.setTextColor(Color.RED); count = 0; break;
        }
    }
});
于 2013-05-21T09:46:52.273 に答える
0

うーん、初心者の質問のように見えます。あなたが今行っていることは、ボタンをクリックするとonClick()メソッドが呼び出され、色が白、青、赤の順に設定されるということです。あなたがやりたいことは、他の答えのようなものです

于 2013-05-21T09:49:03.940 に答える
0
int[] colors = {Color.WHITE, Color.BLUE, Color.RED };

  bt1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            Integer tag = (v.getTag() == null) ? 0 : (Integer)v.getTag();
            int color = colors[tag];
            dc1.setTextColor(color);
            v.setTag((tag+1)%colors.length);
        }
    });

今は試すことができません。タイプミスをチェック

于 2013-05-21T09:45:50.190 に答える
0

これを試して :

 int [] colors = new int[]{Color.WHITE, Color.BLUE, Color.RED};
    int index = 0;
    bt1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                dc1.setTextColor(colors[index]);
                index++;
                if(index == colors.length)
                  index = 0;
            }
        });
于 2013-05-21T09:46:16.223 に答える