Почему динамический радиокнопка имеет белый цвет?
Я прочитал из файла много данных, и я хотел бы создать пользовательский интерфейс из этого. Я создаю много текстового обзора и радио-кнопку, но когда я пробую это на устройстве или эмуляторе, я везде получаю белый текст, почему?
Если я создаю радиокнопку в xml, она черная! но мой динамический радио-цвет кнопки белый:(
public void buildScreen(){
TextView header = new TextView(context);
header.setText(dataManager.getHeaderString()+"\n"+dataManager.getqType());
dataManager.setMainTable(tbl);
TableRow row;
for (Map.Entry<String, SimpleQuestionModel> entry : dataManager.getqDict().entrySet()){
String question = entry.getKey();
SimpleQuestionModel model = entry.getValue();
row = new TableRow(context);
TextView tv = new TextView(context);
tv.setText(model.getQuestion());
dataManager.getMainTable().addView(tv);
RadioGroup rg = new RadioGroup(context);
rg.setOrientation(RadioGroup.VERTICAL);
for (int j=0;j<model.getAnswers().size();j++){
RadioButton rb = new RadioButton(context);
rb.setText(model.getAnswers().get(j));
rg.addView(rb);
}
dataManager.getqAndA().put(tv, rg);
row.addView(rg);
dataManager.getMainTable().addView(row);
}
}
Вот мой классный конструктор:
public UIBuilder(Context context, TableLayout tbl) {
this.context = context;
this.tbl = tbl;
dataManager = DataManager.getInstance();
DataReader dataReader = new DataReader();
dataReader.readDataFromFile("first.txt");
}
И я называю этот класс так:
builder = new UIBuilder(getApplicationContext(), tbl);
builder.buildScreen();
и TBL является таблицей в моем XML
1 ответ
Решение
Всегда используйте Activity
как Context
при создании экземпляров виджетов, если вы хотите, чтобы ваша тема была отмечена. Используя любой другой Context
будет просто использовать тему стоковой системы.
Этот пост в блоге Дэйв Смит объясняет, когда использовать то, что Context
включая упоминание этой проблемы.