2015-04-04 3 views
0

У меня возникла проблема с созданием нескольких кнопок и добавлением их свойств. Я пытаюсь сделать 100 маленьких кнопок на экране, и всякий раз, когда я нажимаю один из них, он должен изменить свой текст на «X».Создание кнопок в Android

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.game_layout); 
    GridLayout buttLayout = (GridLayout) findViewById(R.id.buttLayout); 

    for (int i = 1; i < 100; i++) { 
     LinearLayout.LayoutParams parameters = new LinearLayout.LayoutParams(
       LinearLayout.LayoutParams.WRAP_CONTENT, 
       LinearLayout.LayoutParams.WRAP_CONTENT 
     ); 
     final Button bet = new Button(this); 
     bet.setHeight(5); 
     bet.setWidth(5); 
     bet.setText(""); 
     bet.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       bet.setText("X"); 
      } 
     }); 
     buttLayout.addView(bet, parameters); 
    } 
} 

и XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical"> 

<GridLayout 
    android:layout_width="match_parent" 
    android:layout_height="400dp" 
    android:orientation="horizontal" 
    android:gravity="left" 
    android:id="@+id/buttLayout" 
    android:columnCount="10" 
    android:rowCount="10"> 
    </GridLayout> 
</LinearLayout> 

Я уверен, что есть лучший способ сделать это, но я только начал программировать в Android/Java и не может найти лучший путь. Любая помощь будет оценена по достоинству. Благодаря

ответ

1

Вы должны обрешетке только кнопки в цикле

OnClickListener OnButtonClick = new OnButtonClick(); 

GridLayout buttLayout = (GridLayout) findViewById(R.id.buttLayout); 
LinearLayout.LayoutParams parameters = new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.WRAP_CONTENT, 
      LinearLayout.LayoutParams.WRAP_CONTENT 
    ); 

for (int i = 1; i < 100; i++) { 

    final Button bet = new Button(this); 
    bet.setHeight(5); 
    bet.setWidth(5); 
    bet.setText(""); 
    bet.setOnClickListener(OnButtonClick); 
    buttLayout.addView(bet, parameters); 

    } 

} 

// По щелчку слушателя для всех кнопок

public class OnButtonClick implements View.OnItemClickListener{ 

    public void onClick(View v) { 
      bet.setText("X"); 
     } 

} 
+0

Спасибо за помощь, но до сих пор не решить мою проблему - тот факт, что кнопки похожи, как [this] (http://i.imgur.com/1367GEM.jpg), и я не могу их редактировать. – Prokmi

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