Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中以编程方式设置ToggleButton的状态?_Java_Android_Togglebutton - Fatal编程技术网

Java 在Android中以编程方式设置ToggleButton的状态?

Java 在Android中以编程方式设置ToggleButton的状态?,java,android,togglebutton,Java,Android,Togglebutton,可能重复: 我正在尝试切换图像,一个带有切换按钮的数组。唯一的问题是我需要在三次滚动后重置切换按钮。我已经想出了如何重置后3卷图像;但是,我必须单击切换按钮两次,以使状态与切换按钮中的图像相匹配。我正在阅读,但当我尝试将setActivated(false)应用于循环时,我得到以下语法错误: The method setActivated(boolean) is undefined for the type ToggleButton 按钮的XML格式: <ToggleB

可能重复:

我正在尝试切换图像,一个带有切换按钮的数组。唯一的问题是我需要在三次滚动后重置切换按钮。我已经想出了如何重置后3卷图像;但是,我必须单击切换按钮两次,以使状态与切换按钮中的图像相匹配。我正在阅读,但当我尝试将setActivated(false)应用于循环时,我得到以下语法错误:

The method setActivated(boolean) is undefined for the type ToggleButton
按钮的XML格式:

        <ToggleButton
            android:id="@+id/tbDice1"
            android:layout_width="50dip"
            android:layout_height="50dip"
            android:textOn="" 
            android:textOff=""              
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp" 
            android:background="@drawable/die_grn_6" />

        <ToggleButton
            android:id="@+id/tbDice2"
            android:layout_width="50dip"
            android:layout_height="50dip"
            android:textOn="" 
            android:textOff=""
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp" 
            android:background="@drawable/die_grn_6" />

        <ToggleButton
            android:id="@+id/tbDice3"
            android:layout_width="50dip"
            android:layout_height="50dip"
            android:textOn=""
            android:textOff=""
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp" 
            android:background="@drawable/die_grn_6" />

        <ToggleButton
            android:id="@+id/tbDice4"
            android:layout_width="50dip"
            android:layout_height="50dip"
            android:textOn=""
            android:textOff=""
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:background="@drawable/die_grn_6" />

        <ToggleButton
            android:id="@+id/tbDice5"
            android:layout_width="50dip"
            android:layout_height="50dip"
            android:textOn="" 
            android:textOff=""
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:background="@drawable/die_grn_6" />
        </TableRow>

用于侦听器的Java:

public void playGame()  
{  
    final Random rand = new Random();       

    dice0 = (ToggleButton)findViewById(R.id.tbDice1);  
    dice1 = (ToggleButton)findViewById(R.id.tbDice2);
    dice2 = (ToggleButton)findViewById(R.id.tbDice3);
    dice3 = (ToggleButton)findViewById(R.id.tbDice4);
    dice4 = (ToggleButton)findViewById(R.id.tbDice5);


    txtTurnNum = (TextView)findViewById(R.id.turnNum);
    txtRollNum = (TextView)findViewById(R.id.rollNum);



    final ToggleButton[] dice = {dice0, dice1, dice2, dice3, dice4}; //array of buttons (dice)
    final int [] diceValue = new int [5];
    final boolean [] isHeld = {false, false, false, false, false};  // array of dice to be held (hold)

    roll = (Button)findViewById(R.id.btnroll);
    score = (Button)findViewById(R.id.btnscore);        

    roll.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v ) {   
            rollDice(dice, diceValue, isHeld, rand);    
        }
    }); 

    score.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v ) {   
            scoreDice(diceValue);   
        }
    }); 

    dice0.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            if (dice0.isChecked()) {
                isHeld[0] = true;
                String imgName = "die_red_" + diceValue[0];                 
                int id = getResources().getIdentifier(imgName, "drawable", getPackageName());   
                dice0.setBackgroundResource(id);  //Changes to red
            } else {
                isHeld[0] = false;
                String imgName = "die_grn_" + diceValue[0];                 
                int id = getResources().getIdentifier(imgName, "drawable", getPackageName());   
                dice0.setBackgroundResource(id);  //Changes to green
            }
        }
    });

    dice1.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            if (dice1.isChecked()) {
                isHeld[1] = true;
                String imgName = "die_red_" + diceValue[1];                 
                int id = getResources().getIdentifier(imgName, "drawable", getPackageName());   
                dice1.setBackgroundResource(id);  //Changes to red
            } else {
                isHeld[1] = false;
                String imgName = "die_grn_" + diceValue[1];                 
                int id = getResources().getIdentifier(imgName, "drawable", getPackageName());   
                dice1.setBackgroundResource(id);  //Changes to green
            }
        }
    });

    dice2.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            if (dice2.isChecked()) {
                isHeld[2] = true;
                String imgName = "die_red_" + diceValue[2];                 
                int id = getResources().getIdentifier(imgName, "drawable", getPackageName());   
                dice2.setBackgroundResource(id);  //Changes to red
            } else {
                isHeld[2] = false;
                String imgName = "die_grn_" + diceValue[2];                 
                int id = getResources().getIdentifier(imgName, "drawable", getPackageName());   
                dice2.setBackgroundResource(id);  //Changes to green
            }
        }
    });

    dice3.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            if (dice3.isChecked()) {
                isHeld[3] = true;
                String imgName = "die_red_" + diceValue[3];                 
                int id = getResources().getIdentifier(imgName, "drawable", getPackageName());   
                dice3.setBackgroundResource(id);  //Changes to red
            } else {
                isHeld[3] = false;
                String imgName = "die_grn_" + diceValue[3];                 
                int id = getResources().getIdentifier(imgName, "drawable", getPackageName());   
                dice3.setBackgroundResource(id);  //Changes to green
            }
        }
    });

    dice4.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            if (dice4.isChecked()) {
                isHeld[4] = true;
                String imgName = "die_red_" + diceValue[4];                 
                int id = getResources().getIdentifier(imgName, "drawable", getPackageName());   
                dice4.setBackgroundResource(id);  //Changes to red
            } else {
                isHeld[4] = false;
                String imgName = "die_grn_" + diceValue[4];                 
                int id = getResources().getIdentifier(imgName, "drawable", getPackageName());   
                dice4.setBackgroundResource(id);  //Changes to green
            }
        }
    });
}

public int[] rollDice(ToggleButton [] dice, int [] diceValue, boolean [] isHeld, Random rand)
{


    if(rollNum < MAX_ROLLS){
        for (int i = 0; i < dice.length; i++) {
            if (!isHeld[i]) {
                int rndInt = rand.nextInt(6) + 1; // Random number between 1 and 6          
                String imgName = "die_grn_" + rndInt;                   
                int id = getResources().getIdentifier(imgName, "drawable", getPackageName());   
                diceValue[i] = rndInt;
                dice[i].setBackgroundResource(id);  //Loops through the dice array and sets the appropriate dice images based on individual randoms
            } else {
                //do nothing                        
            }
        }
        rollNum++;              
    } else {
        //Turn is over
        if(turnNum < MAX_TURNS){
            rollNum = 1;  //reset turn number to 1
            turnNum++;                  
            txtTurnNum.setText("" + turnNum);
            scoreDice(diceValue);
            updateScores(scoresArray);
            for (int i = 0; i <dice.length; i++) {
                if (isHeld[i]) {
                    isHeld[i] = false;
                    String imgName = "die_grn_" + diceValue[i];                 
                    int id = getResources().getIdentifier(imgName, "drawable", getPackageName());   
                    dice[i].setBackgroundResource(id);  //Changes to green
                    dice[i].setActivated(false);  //PROBLEM HERE
                }
            }
        } else {
            Toast.makeText(getApplicationContext(), "Game Over",
                    Toast.LENGTH_LONG).show();          
        }
    }

    txtRollNum.setText("" + rollNum);   



    return diceValue;
}
public void playGame()
{  
最终随机数=新随机数();
dice0=(ToggleButton)findViewById(R.id.tbDice1);
dice1=(ToggleButton)findViewById(R.id.tbDice2);
dice2=(ToggleButton)findViewById(R.id.tbDice3);
dice3=(ToggleButton)findViewById(R.id.tbDice4);
dice4=(切换按钮)findViewById(R.id.tbDice5);
txtTurnNum=(TextView)findViewById(R.id.turnNum);
txtRollNum=(TextView)findViewById(R.id.rollNum);
final ToggleButton[]骰子={dice0,dice1,dice2,dice3,dice4};//按钮数组(骰子)
最终整数值=新整数值[5];
最终布尔值[]isHeld={false,false,false,false};//要保留的骰子数组(保留)
滚动=(按钮)findViewById(R.id.btnroll);
分数=(按钮)findViewById(R.id.btnscore);
roll.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
掷骰子(骰子、骰子值、isHeld、兰德);
}
}); 
score.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
分数骰(骰子值);
}
}); 
dice0.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
如果(0.isChecked()){
isHeld[0]=真;
字符串imgName=“die_red_u”+diceValue[0];
int id=getResources().getIdentifier(imgName,“drawable”,getPackageName());
dice0.setBackgroundResource(id);//更改为红色
}否则{
isHeld[0]=假;
字符串imgName=“die_grn_”+diceValue[0];
int id=getResources().getIdentifier(imgName,“drawable”,getPackageName());
dice0.setBackgroundResource(id);//变为绿色
}
}
});
dice1.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
如果(1.isChecked()){
isHeld[1]=真;
字符串imgName=“die_red”+diceValue[1];
int id=getResources().getIdentifier(imgName,“drawable”,getPackageName());
dice1.setBackgroundResource(id);//更改为红色
}否则{
isHeld[1]=假;
字符串imgName=“die_grn_”+diceValue[1];
int id=getResources().getIdentifier(imgName,“drawable”,getPackageName());
dice1.setBackgroundResource(id);//变为绿色
}
}
});
dice2.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
if(dice2.isChecked()){
isHeld[2]=真;
字符串imgName=“die_red”+diceValue[2];
int id=getResources().getIdentifier(imgName,“drawable”,getPackageName());
dice2.setBackgroundResource(id);//更改为红色
}否则{
isHeld[2]=假;
字符串imgName=“die_grn_”+diceValue[2];
int id=getResources().getIdentifier(imgName,“drawable”,getPackageName());
dice2.setBackgroundResource(id);//变为绿色
}
}
});
dice3.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
if(dice3.isChecked()){
isHeld[3]=真;
字符串imgName=“die_red”+diceValue[3];
int id=getResources().getIdentifier(imgName,“drawable”,getPackageName());
dice3.setBackgroundResource(id);//更改为红色
}否则{
isHeld[3]=假;
字符串imgName=“die_grn_”+diceValue[3];
int id=getResources().getIdentifier(imgName,“drawable”,getPackageName());
dice3.setBackgroundResource(id);//变为绿色
}
}
});
dice4.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
if(dice4.isChecked()){
isHeld[4]=真;
字符串imgName=“die_red”+diceValue[4];
int id=getResources().getIdentifier(imgName,“drawable”,getPackageName());
dice4.setBackgroundResource(id);//更改为红色
}否则{
isHeld[4]=假;
字符串imgName=“die_grn_”+diceValue[4];
int id=getResources().getIdentifier(imgName,“drawable”,getPackageName());
dice4.setBackgroundResource(id);//变为绿色
}
}
});
}
公共int[]滚动骰子(ToggleButton[]骰子,int[]骰子值,布尔[]isHeld,随机rand)
{
如果(滚动次数<最大滚动次数){
for(int i=0;i