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方法之外是不可访问的。我怎么说对了?我是关闭还是这是一个主要的恐惧,我是否需要重新思考?
答案 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
}