1
我有一个活动,用户可以使用单选按钮更改设置。可能有2到7个选项,所以我想在我的onCreate()中动态添加单选按钮。通过一些研究,我想出了如何做到这一点,并将结果记录为我自己的利益和您的利益。如何动态添加单选按钮到活动?
我有一个活动,用户可以使用单选按钮更改设置。可能有2到7个选项,所以我想在我的onCreate()中动态添加单选按钮。通过一些研究,我想出了如何做到这一点,并将结果记录为我自己的利益和您的利益。如何动态添加单选按钮到活动?
首先,包括收音机小组件并声明一个。你还需要LayoutParams和RadioButton,所以也包括这些。
//SomeAndroidActivity
import android.widget.RadioGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.RadioButton;
public class SomeAndroidActivity extends Activity() {
//declare a radio group
RadioGroup radioGroup;
}
在你的onCreate方法中,初始化射频组。
//SomeAndroidActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_some_android);
radioGroup = (RadioGroup) findViewById(R.id.radio_selection_group);
}
R.id.radio_selection_group指的是在你的XML文件中声明单选按钮组,所以一定要确保你有这一点。
<!-- activity_some_android.xml -->
<RelativeLayout xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SomeAndroidActivity" >
<RadioGroup
android:id="@+id/radio_selection_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="76dp"
android:layout_marginTop="135dp" >
</RadioGroup>
</RelativeLayout>
回到SomeAndroidActivity,创建一个方法来动态地向按钮组添加按钮。
//SomeAndroidActivity
private void addRadioButtons(int numButtons) {
for(int i = 0; i < numButtons; i++)
//instantiate...
RadioButton radioButton = new RadioButton(this);
//set the values that you would otherwise hardcode in the xml...
radioButton.setLayoutParams
(new LayoutParams
(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
//label the button...
radioButton.setText("Radio Button #" + i);
radioButton.setId(i);
//add it to the group.
radioGroup.addView(radioButton, i);
}
}
然后在onCreate中调用该方法。
//SomeAndroidActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_some_android);
radioGroup = (RadioGroup) findViewById(R.id.radio_selection_group);
int numberOfRadioButtons = 7;
addRadioButtons(numberOfRadioButtons);
}
简单的派。
这是我的博客文章。 http://rocketships.ca/blog/how-to-dynamically-add-radio-buttons/