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

Why dynamic radiobutton color is white?

我从一个文件中读取了很多数据,我想从中创建 ui。我创建了很多文本视图和一个单选按钮,但是当我在设备或模拟器上尝试这个时,我到处都是白色文本,为什么?

如果我在 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);

    }

}

这是我的 class 构造函数:

public UIBuilder(Context context, TableLayout tbl) {
    this.context = context;
    this.tbl = tbl;
    dataManager = DataManager.getInstance();
    DataReader dataReader = new DataReader();
    dataReader.readDataFromFile("first.txt");
}

我这样称呼 class:

 builder = new UIBuilder(getApplicationContext(), tbl);

    builder.buildScreen();

而 tbl 是我 xml

中的一个表格布局

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

Dave Smith 的

This blog post 解释了何时使用什么 Context,包括提到这个问题。