dee*_*pak 4 xml checkbox android android-checkbox android-appwidget
我使用以下代码创建了动态复选框:
XML:
<LinearLayout
android:id="@+id/layout_checkbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
的.java:
LinearLayout ll = (LinearLayout) findViewById(R.id.layout_checkbox);
ll.removeAllViews();
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(getApplicationContext());
myCheckBox.setText(i);
myCheckBox.setTextColor(Color.parseColor("#FFFFFF"));
myCheckBox.setHintTextColor(Color.parseColor("#FFFFFF"));
myCheckBox.setTextSize(12);
myCheckBox.setId(i);
ll.addView(myCheckBox, lp);
}
Run Code Online (Sandbox Code Playgroud)
现在从上面的代码只有LOLLIPOP
版本显示带有文本的复选框.对于以下LOLLIPOP
版本,它仅显示Text
但不显示复选框.
如果我将以下代码放在xml文件中,同样适用于所有设备:
<android.support.v7.widget.AppCompatCheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Testing"
android:buttonTint="@color/colorAccent"/>
Run Code Online (Sandbox Code Playgroud)
但我不能在xml中定义复选框,因为我必须动态创建它.
即使setButtonTintList
不在下面工作LOLLIPOP
如何在下面的LOLLIPOP
版本中显示Checkbox AppCompatCheckBox
?
不要使用getApplicationContext()
,因为Context
传入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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4273 次 |
最近记录: |