多个按钮。将操作传递给Java中的下一个按钮

时间:2015-01-05 12:50:42

标签: java android android-activity

Java Android问题

我连续x有5个按钮。 每个按钮在按钮上显示不同的数字值。 按钮1处于活动状态,其余按钮不可点击。他们是灰色的。 要显示按钮1处于活动状态,它会逐渐淡出。 点击后,该按钮会弹出一条消息。用户确定,这将激活按钮2,并取消激活按钮1。 然后它通过所有按钮逐个发生。最后一个按钮不会产生弹出消息。

我的问题...... 我想创建一个方法,将第一个按钮设置为当前按钮,然后一次单击将下一个按钮设置为当前按钮,依此类推。

谁能告诉我怎么做?我不需要知道如何淡化按钮等,它实际上是如何将按钮设置为当前的,并且在该方法中,用户单击将下一个按钮设置为当前。

非常感谢提前。

EDIT 好吧,我已经去了......它没有用,但它看起来很接近......

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_workout_one);

    int[] buttonIds = new int[]   {R.id.button_1,R.id.button_2,R.id.button_3,R.id.button_4,R.id.button_5};
    setButton(buttonIds);
}



private void setButton(int[] buttId){

    int isCurrent = 0;
    while(isCurrent < 5) {

        Button currentButton = (Button) findViewById(buttId[isCurrent]);
        //TODO Make current button pulse

        currentButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                v.clearAnimation();
                v.setBackgroundColor(0xFF00FF00);
                v.setFocusable(false);
                v.setFocusableInTouchMode(false);
                v.setClickable(false);
                setTimer();
                isCurrent++;
            }
        });

我知道问题是onCurrent ++在onClick方法之外是不可访问的。我怎么说对了?我是关闭还是这是一个主要的恐惧,我是否需要重新思考?

2 个答案:

答案 0 :(得分:0)

只需使用跟踪当前按钮的全局变量,并检查此变量以标识当前活动按钮,以确定onClickListener中的操作。要淡出按钮,请尝试使用此代码段

button.setClickable(false);
button.setBackgroundColor(Color.parseColor("#808080"));

答案 1 :(得分:-1)

你需要这样的东西:

private int activeButton = 1;

private void buttonClickHandler(){
    switch(activeButton++){
        case : 1
           button1.setEnabled(true):
           // show popup, hide/animate for button 1
          break;
        case : 2 
           button2.setEnabled(true);
           // same for button 2
        case : 3
           // same for button 3
        case : 4 
           // same for button 4
 }