Android AppCompatCheckBox不适用于API 21以下的版本
我使用以下代码创建了一个动态复选框: xml: 但是我不能用xml定义复选框,因为我必须动态创建它 即使是Android AppCompatCheckBox不适用于API 21以下的版本,android,xml,checkbox,android-appwidget,android-checkbox,Android,Xml,Checkbox,Android Appwidget,Android Checkbox,我使用以下代码创建了一个动态复选框: xml: 但是我不能用xml定义复选框,因为我必须动态创建它 即使是setButtonTintList也不适用于以下LOLLIPOP 如何使用AppCompatCheckBox显示以下LOLLIPOP版本的复选框?不要使用getApplicationContext(),因为传递到new AppCompatCheckBox()的上下文需要使用对活动的引用(扩展AppCompatActivity)上下文,以正确插入AppCompatCheckBox的样式。如果在
setButtonTintList
也不适用于以下LOLLIPOP
如何使用
AppCompatCheckBox
显示以下LOLLIPOP
版本的复选框?不要使用getApplicationContext()
,因为传递到new AppCompatCheckBox()
的上下文
需要使用对活动的引用(扩展AppCompatActivity
)上下文,以正确插入AppCompatCheckBox
的样式。如果在活动中创建此项,则为new-AppCompatCheckBox(This)
;如果在片段中创建此项,则为new-AppCompatCheckBox(getActivity())
下面这样的代码适用于所有版本:
public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout layout = (LinearLayout) findViewById(R.id.layout);
for (int i = 0; i < 10; i++) {
LinearLayout.LayoutParams lp =
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
AppCompatCheckBox myCheckBox = new AppCompatCheckBox(this);
myCheckBox.setText("text");
myCheckBox.setTextSize(12);
myCheckBox.setId(i);
layout.addView(myCheckBox, lp);
}
}
}
public类MainActivity扩展了AppCompatActivity{
@在创建时覆盖受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout布局=(LinearLayout)findViewById(R.id.layout);
对于(int i=0;i<10;i++){
LinearLayout.LayoutParams lp=
新建LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_内容,LinearLayout.LayoutParams.WRAP_内容);
AppCompatCheckBox myCheckBox=新建AppCompatCheckBox(此);
myCheckBox.setText(“文本”);
myCheckBox.setTextSize(12);
myCheckBox.setId(i);
layout.addView(myCheckBox,lp);
}
}
}
这肯定会奏效
<android.support.v7.widget.AppCompatCheckBox
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Testing"
app:buttonTint="@color/colorAccent"/>
<android.support.v7.widget.AppCompatCheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Testing"
android:buttonTint="@color/colorAccent"/>
public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout layout = (LinearLayout) findViewById(R.id.layout);
for (int i = 0; i < 10; i++) {
LinearLayout.LayoutParams lp =
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
AppCompatCheckBox myCheckBox = new AppCompatCheckBox(this);
myCheckBox.setText("text");
myCheckBox.setTextSize(12);
myCheckBox.setId(i);
layout.addView(myCheckBox, lp);
}
}
}
<android.support.v7.widget.AppCompatCheckBox
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Testing"
app:buttonTint="@color/colorAccent"/>