为什么动态单选按钮的颜色是白色?
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
,包括提到这个问题。
我从一个文件中读取了很多数据,我想从中创建 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
将只使用股票系统主题。
This blog post 解释了何时使用什么 Context
,包括提到这个问题。