J'ai essayé ce code ... Il affichera trois boutons radio sur une seule ligne lorsque l'émulateur démarre. Mais j'ai besoin d'un événement de bouton pour cela. c'est à dire; si je clique sur le bouton, il devrait demander le nombre de boutons radio. puis si je donne le décompte, il doit afficher les boutons radio en fonction du décompte donné. Par exemple, si je donne le nombre de 3, il doit afficher les trois boutons radio sur une seule ligne. Votre aide est très appréciée. Merci d'avance.
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);
}
}
}
c'est 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>
Veuillez trouver ci-dessous le code, j'ai créé un 'EditText' et un 'Button' dans la disposition xml. Entrez un nombre dans le "EditText" et cliquez sur le bouton, le même non. des boutons radio seront ajoutés dans la mise en page.
Ceci est votre 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);
}
}
}
Et voici votre fichier de mise en page
<?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>
Essayez quelque chose comme ci-dessous:
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);
}
Voici comment procéder:
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);
}
Mais que faire si vous devez le faire horizontalement, ajoutez simplement l'orientation (la valeur par défaut est verticale) avec la méthode 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);
}
Voici le code complet:
tout d'abord définir à l'intérieur de notre Layout le 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>
Le code dans la 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);
}
}
}
Ajoutez un Button
et EditText
en xml et prenez l'entrée de editText dans la variable inputValue
et essayez ceci,
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
LinearLayout ll=null;
ViewGroup vwgroup;
Button btnClick;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
vwgroup=((ViewGroup)findViewById(R.id.radiogroup)
btnClick=(Button)findViewById(R.id.button1);
btnClick.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if(ll!=null)
viewgroup.removeView(ll);
ll = new LinearLayout(this);
for(int i = 1; i < inputValue; i++) {
RadioButton rdbtn = new RadioButton(this);
rdbtn.setId(View.generateViewId());
rdbtn.setText("Radio " + rdbtn.getId());
ll.addView(rdbtn);
}
vwgroup.addView(ll);
}
});
}
}