2017-01-07 46 views
0

我有以下代码,并且想知道是否有任何方法可以将以下代码放入for循环中,以便它不会在我的代码中执行几次Android Studio for loop

if (Q1o1.equals("null")){ 
    button1.setVisibility(View.INVISIBLE); 
}else{ 
    button1.setVisibility(View.VISIBLE); 
    button1.setText(Q1o1); 
} 
if (Q1o2.equals("null")){ 
    button2.setVisibility(View.INVISIBLE); 
} else{ 
    button2.setVisibility(View.VISIBLE); 
    button2.setText(Q1o2); 
} 
if (Q1o3.equals("null")){ 
    button3.setVisibility(View.INVISIBLE); 
} else{ 
    button3.setVisibility(View.VISIBLE); 
    button3.setText(Q1o3); 
} 
if (Q1o4.equals("null")){ 
    button4.setVisibility(View.INVISIBLE); 
} else{ 
    button4.setVisibility(View.VISIBLE);button4.setText(Q1o4); 
} 
if (Q1o5.equals("null")){ 
    button5.setVisibility(View.INVISIBLE); 
} else{ 
    button5.setVisibility(View.VISIBLE); 
    button5.setText(Q1o5); 
} 
if (Q1o6.equals("null")){ 
    button6.setVisibility(View.INVISIBLE); 
} else{ 
    button6.setVisibility(View.VISIBLE); 
    button6.setText(Q1o6); 
} 
if (Q1o7.equals("null")){ 
    button7.setVisibility(View.INVISIBLE); 
} else{ 
    button7.setVisibility(View.VISIBLE); 
    button7.setText(Q1o7); 
} 

每一个if语句检查需要是按钮文本的相关变量不为空,然后要么隐藏或放在该按钮内部变量,并显示该按钮。我怎样才能为每个循环使用不同的变量进行循环?

+1

请改变你的话题。这与Android Studio无关。 – Bevor

回答

1

也许声明阵列是这样的:

String[] stringArray = {*your strings here*}; 
ButtonView[] buttonArray = {*your buttons here*}; 

和像这样的循环:

for(int i = 0; i < stringArray.length; i++){ 
    String thisString = stringArray[i]; 
    ButtonView thisButton = buttonArray[i]; 
    if(thisString.equals(null)){ 
     thisButton.setVisibility(View.INVISIBLE); 
    }else{ 
     thisButton.setVisibility(View.VISIBLE); 
     thisButton.setText(thisString); 
    } 
} 
0

我建议创建Q1o7的阵列,并且按钮的阵列,然后使用0到数组长度之间的for循环,其中您将针对数组中选定元素的所有适当方法

示例:

首先创建数组:

Button[] buttonArray = {button1, .., button7}; //Replace the .. by the other buttons 
String[] qoValues = {QO1, .., QO7} //As before 

现在我们创建一个循环,对这些阵列进行迭代,并调用相应功能:

for (int i = 0; i < qoValues.length; i++) { //May also use buttonArray.length 
    ButtonView currentButton= buttonArray[i]; //get current value to work with 
    String currentString = stringArray[i]; 
    if (currentString .equals("null")) { //Similar If statement construction as before 
     currentButton.setVisibility(View.INVISIBLE); 
    } else { 
     currentButton.setVisibility(View.VISIBLE); 
     currentButton.setText(currentString); 
    } 
} 
+0

你是主人,像魅力一样工作,谢谢 –

0

所有你需要做的就是定义两个Arralists哪里一个用于按钮,另一个用于变量:

ArrayList<Button> buttonsList = new ArraList<>(); 

将所有按钮添加到此lis T:

buttonsList.add(button1); 
.... 

做同样的变量,并把他们串

ArrayList<String> labelsList = new ArrayList<>(); 

的另一个数组列表您的循环应该是这样的:

for(int i = 0; i < labelList.size(); i++) { 
    if(!labelList.get(i).equals("null")) { 
     buttonsList.get(i).setVisibility(View.VISIBLE); 
     buttonsList.get(i).setText(labelList.get(i)); 
    } else { 
      buttonsList.get(i).setVisibility(View.INVISIBLE); 
    } 
}