#android #view #tablelayout #visible
#Android #Вид #табличное представление #видимый
Вопрос:
У меня есть класс, содержимое которого настроено на макет, в котором есть несколько кнопок и табличное представление.
Реальная работа по созданию табличного представления выполняется в отдельном статическом вспомогательном классе, который имеет метод, возвращающий нужную таблицу.
Однако таблица не отображается. Какой унизительно простой факт я упускаю?
Вот класс, содержимое которого установлено в макет:
public class TesterActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TableLayout table = (TableLayout) findViewById(R.id.table);
table = TableHelper.getTable_BINARY_NUMBERS(getApplicationContext(), 5, 25);
}
}
И вот вспомогательный класс, который создает содержимое таблицы:
public class TableHelper {
public static TableLayout getTable_BINARY_NUMBERS(Context context, int numRows, int numCols) {
TableLayout table = new TableLayout(context);
table.setStretchAllColumns(true);
table.setShrinkAllColumns(true);
TableRow[] rows = new TableRow[numRows];
for (int row=0; row<numRows; row ) {
rows[row] = new TableRow(context);
for (int col=0; col<numCols-1; col ) {
TextView num = new TextView(context);
num.setText("0");
rows[row].addView(num);
}
TextView rowText = new TextView(context);
rowText.setText("Row " (row 1));
rowText.setTextAppearance(context, android.R.style.TextAppearance_Small);
rows[row].addView(rowText);
rows[row].setPadding(0, 50, 0, 0);
table.addView(rows[row]);
}
return table;
}
}
Ответ №1:
Вместо того, чтобы возвращать новый макет таблицы, передайте тот, который вы сразу получите, своему getTable_BINARY_NUMBERS()
и измените его в своем методе вместо возврата совершенно нового.
Ответ №2:
TableLayout
Возвращаемый вашим вспомогательным классом не совпадает с тем, TableLayout
который вы видите.
при этом создается setContentView(R.layout.main);
экземпляр TableLayout
, который вы присваиваете переменной table. TableLayout
Исходящий из вашего вспомогательного класса экземпляр является другим.
Комментарии:
1. итак, должен ли я передавать таблицу в качестве аргумента в метод моего вспомогательного класса?
2. Я не уверен, что именно вы пытаетесь сделать. Но я передаю
table
может помочь вам.