Здравствуйте, я использовал код для создания некоторых кнопок в tablelayout. Кнопки создаются с помощью этого макета, поэтому ни один из них не имеет идентификатора. Вот мой вопрос. Как я могу указать конкретную кнопку id? (Например, кнопка в первом ряду, второй Колум должен иметь идентификатор «button2»)Как создать динамически сгенерированную кнопку id?
public class MainActivity extends ActionBarActivity {
private static final int NUM_ROWS = 3;
private static final int NUM_COLS = 3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
populateButtons();
}
private void populateButtons() {
TableLayout table = (TableLayout) findViewById(R.id.TableLayout);
for (int row =0; row < NUM_ROWS; row++) {
TableRow tableRow = new TableRow(this);
tableRow.setLayoutParams(new TableLayout.LayoutParams(
TableLayout.LayoutParams.MATCH_PARENT,
TableLayout.LayoutParams.MATCH_PARENT,
1.0f));
table.addView(tableRow);
for (int col = 0; col < NUM_COLS; col++) {
Button button = new Button(this);
tableRow.addView(button);
}
}
}
[setId()] (http://developer.android.com/reference/android/view/View.html#setId (int)), но это принимает 'int', поэтому, если вы хотите' String', тогда вы можете использовать [setTag()] (http://developer.android.com/reference/android/view/View.html#setTag (java.lang.Object)), который берет «объект» и ссылается на «getTag»() ' – codeMagic
Взгляните на это: http://stackoverflow.com/questions/1714297/android-view-setidint-id-programmatically-how-to-avoid-id-conflicts/14975498#14975498 – Loc