我尝试使用以下代码以编程方式在我的Android应用程序中创建一个复选框:
mItems[i] = new CheckBox(getApplicationContext(), null, android.R.style.Widget_Holo_CompoundButton_CheckBox);
mItems[i].setText(items.get(i).getName());
mItems[i].setTag(items.get(i).getPrice());
mItems[i].setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
mFeeContainer.addView(mItems[i], 0);
该字段会添加正确的文本,但是,它只显示文本,没有可见的复选框,我可以单击。如果我使用新的CheckBox(getApplicationContext())创建复选框,那么有一个框但它的样式错误,所以当它没有被选中时它会与我的背景融合。
答案 0 :(得分:3)
我在你的代码中看到两个问题:
View(Context)
,其他的构造函数不应该由用户调用,而是由布局inflater调用。使用复选框创建一个xml文件,并使用以下命令创建一个新实例: LayoutInflater.from(activity).inflate(R.layout.my_checkbox, mFeeContainer, false);
现在,在xml中,您可以为复选框添加所需的任何样式,并且将应用所有默认样式。