2015-06-08 58 views
0

我遇到一种奇怪的情况:当我把代码复选框时,它具有不同的风格,然后通过xml文件添加复选框。什么风格动态添加视图?

这是动态添加的复选框:XML的

LinearLayout checkboxGroup = (LinearLayout) v.findViewById(R.id.category_checkbox_group); 
for(String category : categories) { 
    CheckBox checkBox = new CheckBox(getActivity()); 
    checkBox.setText("dynamically added"); 
    checkBox.setOnClickListener(mCategoryChecked); 
    checkboxGroup.addView(checkBox); 
} 

片段:

 <LinearLayout 
      android:id="@+id/category_checkbox_group" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:orientation="vertical"> 

      <CheckBox 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="xml added" /> 
     </LinearLayout> 

所以,毕竟我有一个复选框形式的XML和码数复选框。 屏幕看起来象下面这样:

enter image description here

所以我的问题是:

  1. 什么风格是默认的动态看法?
  2. 如何将此样式应用于xml的视图?
  3. 是一个简单的方法来更改复选框中的框?
+0

你可以张贴的一部分,在那里你夸大你的片段的XML? – mrtn

回答

1
  1. 的样式为动态添加视图取决于上下文。在你的情况下,上下文就是你的活动,所以添加视图的风格就是你活动的风格。如果您没有为您的活动设置主题,那么它就是您的应用程序的主题,即您在styles.xml中定义的主题。例如:

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    </style> 
    
  2. 您可能从不同的上下文中夸大了xml布局。如果您从相同的环境(如添加的视图)为其充气,则视图应具有相同的样式。尝试检查这一点。

您还可以设置样式为XML一个观点这样的:

<View 
    style="@style/Example" />