以编程方式将单选按钮文本添加到按钮顶部
Radio button text to top of the button programmatically
有没有办法像下面这样以编程方式将单选按钮的文本对齐到顶部。
我使用下面的代码创建了广播组
final RadioButton[] rb = new RadioButton[5];
RadioGroup rg = new RadioGroup(getActivity()); //create the RadioGroup
rg.setOrientation(RadioGroup.VERTICAL);//or RadioGroup.VERTICAL
rg.setLayoutParams(radioparams);
for (int i = 0; i < 5; i++) {
rb[i] = new RadioButton(getActivity());
rb[i].setText("Radiobtn " + i);
rb[i].setId(i + 100);
rg.addView(rb[i]);
}
layout.addView(rg);
但我会在每个按钮的右侧获取文本。
试试这个方法你可以做一个技巧
像这样布局
<LinearLayout
android:id="@+id/lnrView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:orientation="horizontal">
</LinearLayout>
而不是像这样以编程方式添加 RadioButton
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LinearLayout layout = new LinearLayout(MainActivity.this);
layout.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
LinearLayout layout2 = new LinearLayout(MainActivity.this);
layout2.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
final ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
final TextView textView = new TextView(MainActivity.this);
int id = 0;
textView.setId(id);
textView.setTextSize(14);
textView.setTextColor(Color.rgb(0, 0, 0));
textView.setMaxEms(2);
textView.setText("NIlu");
layout2.addView(textView);
RadioButton radioButton = new RadioButton(MainActivity.this);
layout2.addView(radioButton);
layout.setLayoutParams(lp);
lnrView.addView(layout2);
}
});
final RadioButton[] rb = new RadioButton[5];
RadioGroup rg = new RadioGroup(getActivity()); //create the RadioGroup
rg.setOrientation(RadioGroup.VERTICAL);//or RadioGroup.VERTICAL
rg.setLayoutParams(radioparams);
for (int i = 0; i < 5; i++) {
rb[i] = new RadioButton(getActivity());
rb[i].setText("Radiobtn " + i);
rb[i].setId(i + 100);
rb[i].setButtonDrawable(null);
TypedArray a = getTheme().obtainStyledAttributes(R.style.AppTheme, new int[] {android.R.attr.listChoiceIndicatorSingle});
int attributeResourceId = a.getResourceId(0, 0);
Drawable drawable = getResources().getDrawable(attributeResourceId);
rb[i].setCompoundDrawablesWithIntrinsicBounds(null, null, null, drawable);
rb[i].setGravity(Gravity.CENTER | Gravity.BOTTOM);
rg.addView(rb[i]);
}
layout.addView(rg);
有没有办法像下面这样以编程方式将单选按钮的文本对齐到顶部。
我使用下面的代码创建了广播组
final RadioButton[] rb = new RadioButton[5];
RadioGroup rg = new RadioGroup(getActivity()); //create the RadioGroup
rg.setOrientation(RadioGroup.VERTICAL);//or RadioGroup.VERTICAL
rg.setLayoutParams(radioparams);
for (int i = 0; i < 5; i++) {
rb[i] = new RadioButton(getActivity());
rb[i].setText("Radiobtn " + i);
rb[i].setId(i + 100);
rg.addView(rb[i]);
}
layout.addView(rg);
但我会在每个按钮的右侧获取文本。
试试这个方法你可以做一个技巧
像这样布局
<LinearLayout
android:id="@+id/lnrView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:orientation="horizontal">
</LinearLayout>
而不是像这样以编程方式添加 RadioButton
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LinearLayout layout = new LinearLayout(MainActivity.this);
layout.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
LinearLayout layout2 = new LinearLayout(MainActivity.this);
layout2.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
final ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
final TextView textView = new TextView(MainActivity.this);
int id = 0;
textView.setId(id);
textView.setTextSize(14);
textView.setTextColor(Color.rgb(0, 0, 0));
textView.setMaxEms(2);
textView.setText("NIlu");
layout2.addView(textView);
RadioButton radioButton = new RadioButton(MainActivity.this);
layout2.addView(radioButton);
layout.setLayoutParams(lp);
lnrView.addView(layout2);
}
});
final RadioButton[] rb = new RadioButton[5];
RadioGroup rg = new RadioGroup(getActivity()); //create the RadioGroup
rg.setOrientation(RadioGroup.VERTICAL);//or RadioGroup.VERTICAL
rg.setLayoutParams(radioparams);
for (int i = 0; i < 5; i++) {
rb[i] = new RadioButton(getActivity());
rb[i].setText("Radiobtn " + i);
rb[i].setId(i + 100);
rb[i].setButtonDrawable(null);
TypedArray a = getTheme().obtainStyledAttributes(R.style.AppTheme, new int[] {android.R.attr.listChoiceIndicatorSingle});
int attributeResourceId = a.getResourceId(0, 0);
Drawable drawable = getResources().getDrawable(attributeResourceId);
rb[i].setCompoundDrawablesWithIntrinsicBounds(null, null, null, drawable);
rb[i].setGravity(Gravity.CENTER | Gravity.BOTTOM);
rg.addView(rb[i]);
}
layout.addView(rg);