Android:以编程方式在RadioGroup中渲染RadioButton和WebView

时间:2013-09-20 11:46:51

标签: android android-layout webview radio-button radio-group

我希望在RadioGroup

中呈现这样的内容

(X) - (WebView)

(X) - (WebView)

(X) - (WebView)

(X) - (WebView)

其中(X)是RadioButton

WebView的内容可以是非常小的格式化文本或图像。

我写了以下代码

LinearLayout ll = (LinearLayout) findViewById(R.id.ll);

RadioGroup radioGroup = new RadioGroup( getApplicationContext() );
radioGroup.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT ));

for( int j = 0; j < 4; j++ )
{
    RadioButton optionRadioButton = new RadioButton(this);
LinearLayout.LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT );
optionRadioButton.setLayoutParams( p );

    radioGroup.addView(optionRadioButton);

    WebView optionWebView = new WebView( getApplicationContext() );
    optionWebView.loadDataWithBaseURL(URL, webViewData, "text/html", null, null);
    p = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT );
    optionWebView.setLayoutParams( p );
    radioGroup.addView( optionWebView );
}

ll.addView( radioGroup );   

我得到的输出是这样的。 (X)

(web视图)

(X)

(web视图)

(X)

(web视图)

(X)

(web视图)

我希望RadioButtonWebView显示在同一行。

我已尝试将RadioButtonWebView组合放在LinearLayout容器中,以正确显示文本,但RadioGroup功能会受到影响。

我也尝试使用像

这样的东西
optionRadioButton.setText( Html.fromHtml( webViewData ) );

当我尝试在webViewData中发送图像时,这个东西效果不好。

我也尝试了一些引力,setOrientation,但似乎没有任何效果。我错过了一些非常基本的东西吗?请帮忙。

2 个答案:

答案 0 :(得分:0)

Do this way..   

 RadioGroup radioGroup = new RadioGroup(getApplicationContext());
            radioGroup.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

            for (int j = 0; j < 4; j++) {
                LinearLayout lnr=new LinearLayout(this);
                RadioButton optionRadioButton = new RadioButton(this);
                LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                optionRadioButton.setLayoutParams(p);


                lnr.addView(optionRadioButton);

                WebView optionWebView = new WebView(getApplicationContext());
                optionWebView.loadDataWithBaseURL(URL, webViewData, "text/html", null, null);
                p = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                optionWebView.setLayoutParams(p);
                lnr.addView(optionWebView);
                radioGroup.addView(lnr);

            }

            ll.addView(radioGroup);

答案 1 :(得分:0)

我知道问题已经很久了。但无论谁来到这个问题陈述相同的页面都可以检查这个方法来解决问题

我遇到了同样的问题。 我用这个漂亮的图书馆解决了这个问题。

https://github.com/worker8/RadioGroupPlus#downloadinstall

而不是Android的Radio组只使用这个库的Custom Radio组。它结合了这个特定组中的所有单选按钮,并将其视为自己的直接子项。所以即使它在两个级别内也没问题。

对于所有被迫一起使用Web视图和单选按钮的人,可以使用此特定库。 干杯!