为什么动态单选按钮颜色为白色?

时间:2015-04-18 16:04:55

标签: android radio-button dynamic-ui

我从文件中读取了大量数据,我想从中创建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

1 个答案:

答案 0 :(得分:4)

在实例化小部件时,始终使用Activity作为Context,如果您希望尊重您的主题。使用任何其他Context只会使用股票系统主题。

Dave Smith的

This blog post解释了何时使用Context,包括提及此问题。