2010-10-26 3 views
0

Ok, je ne suis pas génial à expliquer cela comme je suis nouveau sur Android alors travaillez avec moi. J'ai essayé tout ce que je peux trouver et je ne sais pas comment tout faire fonctionner ensemble. J'ai un Spinner pour sélectionner un groupe d'âge, un groupe Radio avec boutons radio pour vous permettre de sélectionner le genre (masculin ou féminin), j'ai un EditText que je vais autoriser pour la saisie numérique et une Textview sur le côté qui est actuellement blanc.Aide! J'ai besoin d'un Spinner, Radio Groupe avec boutons radio, EditText, et setText

En fonction du groupe d'âge sélectionné dans le sélecteur et de l'un des boutons Radio sélectionné, définissez TextText du TextView sur un certain nombre en fonction du numéro entré dans la zone EditText.

Ive essayé d'utiliser OnItemSelectedListener pour la fileuse, mais havent été en mesure de trouver comment il sait ce qui est choisi dans le array.I essayé getItemSelected avec une instruction if avec l'élément du tableau

pour le bouton radio Ive essayé d'utiliser une instruction if - if (radiobutton.isChecked()) mais je ne savais pas si je besoin d'un ifCheckedRadio avant cela et comment le faire fonctionner après la fileuse

et si tout cela a travaillé si je devais (EditText.getText(). Equals ("#")) TextView.setText ("#");

Ce sera copié pour chaque possible # entré

serait maintenant le changement de texte comme celui-ci sans bouton et OnClickListener ou est-il un moyen de le faire sans un bouton becuase il y aura plus d'un EditText qui sera ajouté à la fin en utilisant un bouton, mais je voulais que cela s'affiche immédiatement après il est entré

Désolé si ce n'est pas clair, s'il vous plaît laissez-moi savoir si vous avez besoin de plus d'informations. Si j'ai oublié une question précédente qui utilise des filateurs et des radiobuttons s'il vous plaît faites le moi savoir et je vais continuer à regarder, mais j'ai été bloqué sur ce point.

Répondre

0

OK - re votre dernière commenter, cela fait à la fois la sélection d'un élément du spinner et des boutons radio, terminant les actions pour l'entrée. Fondamentalement, j'ai ajouté onClickListeners aux boutons. Cependant, vous ne pouvez pas vraiment ajouter un Onclick au texte d'édition, car un clic fait normalement apparaître le clavier logiciel.

package com.test.spinnerexample; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.EditText; 
import android.widget.RadioButton; 
import android.widget.Spinner; 
import android.widget.TextView; 
import android.widget.AdapterView.OnItemSelectedListener; 

public class SpinnerExample extends Activity { 
RadioButton rb1; RadioButton rb2; TextView tv; EditText et; 
Spinner sp; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    rb1 = (RadioButton) findViewById(R.id.RadioButton01); 
    rb2 = (RadioButton) findViewById(R.id.RadioButton02); 
    tv = (TextView) findViewById(R.id.OutputText); 
    et = (EditText) findViewById(R.id.EditText01); 
    sp = (Spinner) findViewById(R.id.Spinner01); 
    ArrayAdapter<CharSequence> adapter1; 
    adapter1 = ArrayAdapter.createFromResource(
      this, R.array.agegroups_array, 
      android.R.layout.simple_spinner_item); 
    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    sp.setAdapter(adapter1); 
    rb1.setChecked(true); 
    sp.setOnItemSelectedListener(new MyOnItemSelectedListener()); 
    rb1.setOnClickListener(new ButtonListener()); 
    rb2.setOnClickListener(new ButtonListener()); 
} 
private class MyOnItemSelectedListener implements OnItemSelectedListener { 

    public void onItemSelected(AdapterView<?> parent, View view, int pos, 
      long id) { 

     RadioButton checkedButton = rb1.isChecked() ? rb1 : rb2; 
     showResult(parent.getItemAtPosition(pos).toString(), 
       checkedButton.getText().toString()); 
    } 
    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
    } 
} 
private class ButtonListener implements OnClickListener{ 

    @Override 
    public void onClick(View view) { 
     RadioButton rb = (RadioButton) view; 
     int selectedItem = sp.getSelectedItemPosition(); 
     showResult(sp.getItemAtPosition(selectedItem).toString(), 
       rb.getText().toString()); 
    } 

} 
private void showResult(String selctdSpnrText, String chkdBtnText){ 
    String answer = selctdSpnrText + " " + chkdBtnText + " " 
    + et.getText(); 
    tv.setText(answer); 
} 
} 
+0

Ce n'était pas exactement ce que je voulais dire mais vous m'avez certainement aidé beaucoup et ce que j'ai fini avec ajoutait - et.addTextChangedListener (new TextWatcher() de sorte que si un certain nombre est entré dans l'EditText le TextView changera immédiatement. postera le code plus tard Merci pour votre aide. – Daniel

0

Cela devrait le faire

public void onItemSelected(AdapterView<?> parent, 
     View view, int pos, long id) { 

      TextView tv = (TextView) findViewById(R.id.TextView01); 
      RadioGroup rg = (RadioGroup) findViewById(R.id.RadioGroup01); 
      EditText et = (EditText) findViewById(R.id.EditText01); 
      RadioButton rb1 = (RadioButton) findViewById(R.id.RadioButton01); 
      RadioButton rb2 = (RadioButton) findViewById(R.id.RadioButton02); 
      String gender = ""; 
      if (rb1.isChecked()) 
      gender = "male"; 
      if (rb2.isChecked()) 
      gender = "female"; 
      String answer; 
      answer = parent.getItemAtPosition(pos).toString() + " " 
      + gender + " " + et.getText(); 
      tv.setText(answer); 
    } 
  • rugueux et prêt, mais devrait vous donner l'idée générale (mettre les Radiobuttons à l'intérieur du RadioGroup par la voie)
+0

Je tentais d'aller d'une manière différente avec elle, mais cela pourrait rendre les choses beaucoup plus facile. La seule chose que je ne comprends pas et que j'essaie toujours de comprendre, c'est que chaque fois que je trouve quelque chose à propos d'un spinner et getitem je ne comprends pas où l'objet en cours de sélection va. answer = parent.getItemAtPosition (pos) .toString() + "" + gender + "" + et.getText(); – Daniel

+0

J'essayais d'éditer ceci pour donner un sens mais j'ai manqué de temps. Qu'est-ce que "" après toString et après le genre? – Daniel

+0

La méthode vous indique quel élément a été cliqué/sélectionné, c'est à la position 'pos'.Je ne "va" nulle part jusqu'à ce que vous y accédiez avec getItemAtPosition et le transformiez en String. La 'réponse' est une concaténation de Stings. Le "" est juste une chaîne avec un espace pour séparer les mots. – NickT

0

// ------- spinner pour le genre

ArrayAdapter<String> spnAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, items); 
    spnAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    spnSex.setAdapter(spnAdapter); 

    spnSex.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

     public void onItemSelected(AdapterView<?> parent, View view, 
       int position, long id) { 
      // TODO Auto-generated method stub 
      myprofile.str_sex = items[position]; 

     } 

     public void onNothingSelected(AdapterView<?> arg0) { 
      // TODO Auto-generated method stub 

     } 
    });