Comment ajouter des cases à cocher de façon dynamique dans android
J'ai besoin de créer edittext champs dynamiquement dans android. Je suis passé par le lien et avait écrit le bouton cliquez sur le bouton action pour elle. C'est quand je clique sur le bouton, les cases a à l'écran. Mais quand je suis la création de la case de l'objet dans l'action onclick il montre l'erreur.
Quelqu'un peut-il me dire pourquoi est-il montre l'erreur?
Mon code :
public class InflationActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ScrollView sv = new ScrollView(this);
final LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
sv.addView(ll);
TextView tv = new TextView(this);
tv.setText("Dynamic layouts ftw!");
ll.addView(tv);
EditText et = new EditText(this);
et.setText("weeeeeeeeeee~!");
ll.addView(et);
Button b = new Button(this);
b.setText("I don't do anything, but I was added dynamically. :)");
ll.addView(b);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
for(int i = 0; i < 20; i++) {
CheckBox ch = new CheckBox(this);
ch.setText("I'm dynamic!");
ll.addView(ch);
}
}
});
this.setContentView(sv);
}
}
- de nous montrer l'erreur.
- Pour vous dire pourquoi c'est montrer que l'erreur, nous avons appris à connaître ce que c'est que d'erreur.
Vous devez vous connecter pour publier un commentaire.
Il suffit de changer votre auditeur(fonctionnant parfaitement,j'ai essayé):
Note deux changements:
View.OnClickListener
àOnClickListener
new CheckBox(this)
ànew CheckBox(getApplicationContext())
changement (ce) à la nouvelle Case à cocher(votre nom de l'activité.c'); parce que si vous passez ce qu'il ne prendra pas le Contexte de votre activité parce que vous le code de cette ligne à l'intérieur de l'écouteur de clics.
CheckBox ch = new CheckBox(this);
""ce n'est pas l'activité, mais l'auditeur. Vous pouvez utiliserInflationActivity.this
mais vous devrait utilisation getcontexteapplication(); ou getBaseContext().Si vous avez une erreur à l'exécution, vous doit inclure la stacktrace à partir de vos fichiers de log. Si votre projet ne peut pas compiler il suffit de changer la ce que j'ai proposé et sera ok.
Il y a quelques années sur cette question, mais cette exigence n'a pas changé... voici comment je l'ai fait travailler sur l'API 22. La légère variation est que j'ai un flottant sur le bouton d'action (fab) sur un axe principal de mise en page et la mise en page du contenu, qui est l'endroit où je créer dynamiquement le LinearLayout.
Note:
b.setOnClickListener(new View.OnClickListener()
etCheckBox ch = new CheckBox(v.getContext());
activity_main.xml
content_main.xml
MainActivity.java