Din*_*mar 28 android dynamic count button radio-button
我试过这个代码..当模拟器启动时,它会在一行中显示三个单选按钮.但我需要一个按钮事件.即; 如果我点击按钮,它应该询问单选按钮的数量.那么如果我给出计数,它必须根据给定的计数显示单选按钮.例如,如果我将计数设为3,则必须在一行中显示三个单选按钮.非常感谢您的帮助.提前致谢.
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
for(int row=0; row < 1; row++)
{
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.HORIZONTAL);
for(int i = 1; i < 4; i++) {
RadioButton rdbtn = new RadioButton(this);
rdbtn.setId((row * 2) + i);
rdbtn.setText("Radio " + rdbtn.getId());
ll.addView(rdbtn);
}
((ViewGroup)findViewById(R.id.radiogroup)).addView(ll);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是xml
<?xml version="1.0" encoding="utf-8"?>
<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=".MainActivity" >
<RadioGroup
android:id="@+id/radiogroup"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
Jit*_*Dev 50
请在下面找到代码,我在xml布局中创建了一个'EditText'和一个'Button'.在'EditText'中输入一个数字,然后单击Button,同样的no.单选按钮将添加到布局中.
这是你的ActivityMain
public class ActivityMain extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText editText=(EditText)findViewById(R.id.et_no);
findViewById(R.id.btn).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int number=Integer.parseInt(editText.getText().toString());
addRadioButtons(number);
}
});
}
public void addRadioButtons(int number) {
for (int row = 0; row < 1; row++) {
RadioGroup ll = new RadioGroup(this);
ll.setOrientation(LinearLayout.HORIZONTAL);
for (int i = 1; i <= number; i++) {
RadioButton rdbtn = new RadioButton(this);
rdbtn.setId(View.generateViewId());
rdbtn.setText("Radio " + rdbtn.getId());
ll.addView(rdbtn);
}
((ViewGroup) findViewById(R.id.radiogroup)).addView(ll);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是你的布局文件
<?xml version="1.0" encoding="utf-8"?>
<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=".MainActivity" >
<RadioGroup
android:id="@+id/radiogroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:orientation="vertical" />
<LinearLayout
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_height="wrap_content"
android:layout_width="match_parent">
<EditText android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:hint="Enter no."
android:inputType="number"
android:id="@+id/et_no"/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Add Radio btn"
android:id="@+id/btn"/>
</LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
Sag*_*yad 23
尝试以下内容:
RadioGroup rgp= (RadioGroup) findViewById(R.id.radiogroup);
RadioGroup.LayoutParams rprms;
for(int i=0;i<3;i++){
RadioButton radioButton = new RadioButton(this);
radioButton.setText("new"+i);
radioButton.setId(View.generateViewId());
rprms= new RadioGroup.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
rgp.addView(radioButton, rprms);
}
Run Code Online (Sandbox Code Playgroud)
Jor*_*sys 14
这是这样做的方法:
RadioGroup rgp = (RadioGroup) findViewById(R.id.radio_group);
int buttons = 5;
for (int i = 1; i <= buttons ; i++) {
RadioButton rbn = new RadioButton(this);
rbn.setId(View.generateViewId());
rbn.setText("RadioButton" + i);
rgp.addView(rbn);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您需要水平执行此操作,只需使用方法添加方向(默认值为vertical)setOrientation()
:
RadioGroup rgp = (RadioGroup) findViewById(R.id.radio_group);
rgp.setOrientation(LinearLayout.HORIZONTAL);
int buttons = 5;
for (int i = 1; i <= buttons; i++) {
RadioButton rbn = new RadioButton(this);
rbn.setId(View.generateViewId());
rbn.setText("RadioButton" + i);
rbn.setLayoutParams(params);
rgp.addView(rbn);
}
Run Code Online (Sandbox Code Playgroud)
这是完整的代码:
首先在我们的布局中定义RadioGroup:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<RadioGroup
android:id="@+id/radio_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
进入MainActivity的代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Defining 5 buttons.
int buttons = 5;
AppCompatRadioButton[] rb = new AppCompatRadioButton[buttons];
RadioGroup rgp = (RadioGroup) findViewById(R.id.radio_group);
rgp.setOrientation(LinearLayout.HORIZONTAL);
for (int i = 1; i <= buttons; i++) {
RadioButton rbn = new RadioButton(this);
rbn.setId(View.generateViewId());
rbn.setText("RadioButton" + i);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1f);
rbn.setLayoutParams(params);
rgp.addView(rbn);
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
66244 次 |
最近记录: |