我从文件中读取了大量数据,我想从中创建ui。我创建了很多textview和radiobutton,但是当我在设备或模拟器上尝试这个时,到处都有白色文本,为什么?
如果我在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中的tablelayout
答案 0 :(得分:4)
在实例化小部件时,始终使用Activity
作为Context
,如果您希望尊重您的主题。使用任何其他Context
只会使用股票系统主题。
This blog post解释了何时使用Context
,包括提及此问题。