2010-11-05 4 views
0

Ce que j'essaie de faire est d'utiliser une instruction if pour déterminer quel élément de mon spinner est sélectionné et ensuite de permettre à deux boutons radio différents d'être sélectionné et selon lequel faire quelque chose de différent. La sortie pour un TextView changera en fonction de l'élément Spinner et du bouton radio sélectionné. Je n'ai aucun problème avec les boutons radio et la sortie variera en fonction de laquelle est sélectionné mais le spinner ne fait rien. Je peux sélectionner n'importe quel élément et il aura la même sortie et ignorer la première déclaration if concernant le fileur et juste utiliser le second.J'ai pensé que cela a fonctionné et passé au reste de mon application puis est retourné et testé et maintenant im retour à la case un. Je ne veux pas utiliser un OnItemSelectedListener mais je me rends compte que j'essaie probablement de comparer l'objet au spinner dans le mauvais sens. Pour un OnItemSelectedListener j'utiliser:Je veux utiliser une instruction if avec un élément spinner mais sans OnItemSelectedListener

if (parent.getItemAtPosition(pos).toString().equals("1-17")) 

mais je tentais de le faire dans un TextChangedListener et pensé qu'il travaillerait mais je trouve filateurs vraiment déroutant. Ci-dessous un exemple qui est similaire à ce que j'ai seulement je ne suis pas à la maison alors j'ai essayé de le recréer autant que possible. J'ai laissé une exception de format numérique que j'ai retirée du code parce que je ne me souviens pas comment je l'ai fait mais mon application fermait la porte si un nombre était entré puis supprimé, donc je ne pense pas que ce soit nécessaire pour ça.

EditText et1; 
Spinner age; 
RadioGroup radio; 
RadioButton male; 
RadioButton female; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.calc); 

    number = (EditText) findViewById(R.id.number); 
    tv1 = (TextView) findViewById(R.id.tv1); 
    male = (RadioButton) findViewById(R.id.male); 
    female = (RadioButton) findViewById(R.id.female); 
    radio = (RadioGroup) findViewById(R.id.radio); 
    age = (Spinner) findViewById(R.id.ageselect); 

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.age_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     age.setAdapter(adapter); 

textEdit.addTextChangedListener(new TextWatcher(){ 

      @Override 
      public void afterTextChanged(Editable editable) 
      { 
      int number = Integer.parseInt(number.getText().toString()); 
      if (age.getItemAtPosition(0).toString().equals("1-17")){ 
      if (male.isChecked()){ 
      if (number == 40){ 
      tv1.setText("60"); }} 
      if (female.isChecked()){ 
      if (number == 40){ 
      tv1.setText("50"); }}} 

      if (age.getItemAtPosition(1).toString().equals("18-20")){ 
      if (male.isChecked()){ 
      if (number == 40){ 
      tv1.setText("65"); }} 
      if (female.isChecked()){ 
      if (number == 40){ 
      tv1.setText("55"); }}} 

      } 

      @Override 
      public void beforeTextChanged(CharSequence text, int start, int count, int after) 
      { 
        // Do Stuff 

      } 

      @Override 
      public void onTextChanged(CharSequence arg0, int start, int before, int count) 
      { 
        // Do Stuff 

      } 

    }); 

J'apprécierais des recommandations ou des liens où je peux trouver cette information. J'ai cherché beaucoup de chance sans chance et ce fileur me rend fou. Je suis prêt à tout abandonner et utiliser plus de boutons radio, mais je ne veux pas encombrer mon application. Merci les gars!

+0

Je pense avoir trouvé la réponse ici: http://stackoverflow.com/questions/2129903/call-a-spinners-value-also-use-other-values-based- sur-un-spinners-value qui contenait: Objet d'objet = spinner.getSelectedItem(); long id = spinner.getSelectedItemId(); int position = getSelectedItemPosition(); Afficher selectedView = getSelectedView(); Je vais essayer de comprendre comment utiliser l'un d'entre eux quand je rentre à la maison. Je ne sais pas comment j'ai négligé ce fil. – Daniel

Répondre

0

Désolé d'avoir posé une autre question. J'ai utilisé le suivant:

Object item = age.getSelectedItem(); 
if (item.equals("1-17")){ 
Questions connexes