2013-03-27 3 views
0

Я написал простое приложение, в котором я хочу добавить несколько программных программ. Проблема в том, что он не уверен, сколько кнопок нужно добавить. Я попытался поместить кнопку «Button button = new Button» в цикл for, потому что я только создаю локальную переменную. Я предполагаю, что это моя вина;)Добавить неизвестное количество кнопок programmatical

Это мой код:

public class MainActivity extends Activity { 

LinearLayout auswahl; 

String element [] = new String [10]; //This is just an example, it would take many pages to show how this array gets created. 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    auswahl = (LinearLayout)findViewById(R.id.LinearLayout2); 

    element [1] = "A"; 
    element [2] = "B"; 
    element [3] = "C"; 
    element [4] = "D"; 
    element [5] = "E"; 
    element [6] = "F"; 
    element [7] = "G"; 
    element [8] = "H"; 
    element [9] = "I"; 
    element [0] = "J"; 

    int anzahl = element.length; 

    for (int i = 0; i <= anzahl; i++){ 
     schreibeButtons(i, element[i]); 
    } 

} 


public void schreibeButtons(int i, String string){ 

    Button button = new Button(this); 

    button.setText(sortiment); 
    button.setWidth(auswahl.getWidth()); 
    button.setHeight(40); 
    button.setId(i*100); 

    auswahl.addView(button); 
} } 

Есть ли какие-либо вопросы о том, что я хочу достичь? Кто-нибудь знает, как достичь моей цели? Спасибо, что помогли!

+0

первого изменения для контура второго условия 'я

+0

Человек я такой идиот. Спасибо большое! Thats it;) – LosTheAlef

+0

@ ρяσѕρєяK Я печатал то же самое в ответ bro..So может прекратить публикацию его. – Pragnani

ответ

1

Ошибка:

int anzahl = element.length; 

Массив размера п содержит элементы 0 to n-1,

prasperK уже указал, что.

Вы добавляете каждую кнопку на свой LinearLayoutauswahl.

Вы можете получить доступ к кнопке из него только

Пример: Количество кнопок - auswahl.getChildCount(); И вы можете получить доступ к каждой кнопке, как этот

кнопку Для того, чтобы получить 1

Button button1=auswahl.getChildAt(0); 

или просто с помощью ID

Button button1=(Button)auswahl.findViewById(101); 
+0

Большое спасибо! Вот что я искал! Я отвечу на ваш вопрос как можно скорее, если это возможно.) – LosTheAlef

Смежные вопросы