2016-12-11 20 views
0

我用這個代碼,使新的單選按鈕,並把它添加到radioGroup的Android AppCompatRadioButton圈未顯示

  RadioButton buttonh = new RadioButton(getApplicationContext()); 
      RadioGroup.LayoutParams params_rb = new RadioGroup.LayoutParams(
        ViewGroup.LayoutParams.MATCH_PARENT, 
        ViewGroup.LayoutParams.WRAP_CONTENT); 

      buttonh.setLayoutDirection(View.LAYOUT_DIRECTION_RTL); 
      buttonh.setGravity(Gravity.START); 
      params_rb.setMargins(0, 0, 12, 0); 
      buttonh.setTextColor(getResources().getColor(R.color.textColor)); 
      buttonh.setTextAlignment(View.TEXT_ALIGNMENT_TEXT_START); 
      buttonh.setText(Html.fromHtml(mscs.get("time_am"))); 
      radiox.addView(buttonh,params_rb); 

其工作,但其表現出不同顏色的圓圈的,所以我必須將其更改爲

AppCompatRadioButton buttonh = new AppCompatRadioButton(this); 

但是當我使用這個代碼的圓圈只有文本顯示任何想法?

我也嘗試添加顏色圈,但似乎沒有圈只有文字

 ColorStateList colorStateList = new ColorStateList(
        new int[][]{ 
          new int[]{-android.R.attr.state_checked}, 
          new int[]{android.R.attr.state_checked} 
        }, 
        new int[]{ 

          Color.DKGRAY 
          , Color.rgb (242,81,112), 
        } 
      ); 
      buttonh.setSupportButtonTintList(colorStateList); 
+0

使用解決'myActivity.this'相反getApplicationContext()的'' –

回答

0

首先,你應該去看一下程序兼容性LIB文章有和不同attributs您可以設置:

colorPrimary:應用程序的主要品牌顏色。默認情況下,這是應用於操作欄背景的顏色。

colorPrimaryDark:主品牌顏色的深色變體。默認情況下,這是應用於狀態欄(通過statusBarColor)和導航欄(通過navigationBarColor)的顏色。

colorAccent:對主品牌顏色的明亮補充。默認情況下,這是應用於框架控件的顏色(通過colorControlActivated)。

colorControlNormal:以正常狀態應用於框架控件的顏色。

colorControlActivated:應用於框架控件的顏色激活(例如檢查,開啓)狀態。

colorControlHighlight:應用於框架控件高亮的顏色(例如,漣漪,列表選擇器)。

colorButtonNormal:在正常狀態下應用於框架按鈕的顏色。 與以往attributs您可以定義自己的主題單選按鈕:

<style name="Theme.MyRadioButton" parent="Theme.AppCompat.Light"> 
    <!-- colorPrimary is used for the default action bar background --> 
    <item name="colorPrimary">@color/my_awesome_color</item> 

    <!-- colorPrimaryDark is used for the status bar --> 
    <item name="colorPrimaryDark">@color/my_awesome_darker_color</item> 

    <!-- colorAccent is used as the default value for colorControlActivated, 
     which is used to tint widgets --> 
    <item name="colorAccent">@color/accent</item> 

    <!-- You can also set colorControlNormal, colorControlActivated 
     colorControlHighlight, and colorSwitchThumbNormal. --> 

</style> 

和:

<RadioButton 
    .................................... 
    android:theme="@style/Theme.MyRadioButton"> 
</RadioButton> 
+0

我需要讓編程 –

+0

您應該使用ContextThemeWrapper,它會更改默認主題。只需像往常一樣獲取上下文,並按如下方式使用它: new RadioButton(new ContextThemeWrapper(context,R.style.Theme.MyRadioButton)); –