2017-01-07 110 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); 
    } 
}