2017-09-19 2 views
-1

J'utilise trois spins pour obtenir des informations de la part de l'utilisateur, et sur la base de ces informations, je vais ensuite représenter certaines données. Cependant, je n'arrive pas à comprendre comment faire cela. i ai le code suivant (extrait afin de faire apparaître les bits importants):faire une tâche basée sur plusieurs onItemSelectedListeners

final GraphView graph = (GraphView) findViewById(R.id.graph); 
Spinner selectGraphSpinner = (Spinner) findViewById(R.id.graphSpinner); 
Spinner selectUserSpinner = (Spinner) findViewById(R.id.userSpinner); 
Spinner selectTimeSpinner = (Spinner) findViewById(R.id.timeSpinner); 
    String[] items = new String[]{"Please Select a User", "04950f4ae53f80", "another user"}; 

    // Create ArrayAdapters for Spinners 
ArrayAdapter<CharSequence> selectGraphAdapter = ArrayAdapter 
      .createFromResource(this, R.array.Graphs, 
        android.R.layout.simple_spinner_item); 
ArrayAdapter<String> userSpinnerAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, items); 
ArrayAdapter<CharSequence> spinTimeAdapter = ArrayAdapter 
      .createFromResource(this, R.array.TimeIncrements, 
        android.R.layout.simple_spinner_item); 
selectGraphSpinner.setAdapter(selectGraphAdapter); 
selectUserSpinner.setAdapter(userSpinnerAdapter); 
selectTimeSpinner.setAdapter(spinTimeAdapter); 

le onItemSelectedListeners x 3 répéter pour d'autres spinner:

selectUserSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, 
            int position, long id) { 
      itemOne = parent.getItemAtPosition(0).toString(); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 
      // TODO Auto-generated method stub 
     } 
    }); 

la logique de création de graphiques à ce jour:

while (itemOne != null) { 
     if (itemOne.equalsIgnoreCase("04950f4ae53f80")) { 
      if (itemTwo.equalsIgnoreCase("Estimated vs Actual Time")) { 
       if (itemThree.equalsIgnoreCase("Day")) { 
        LineGraphSeries<DataPoint> series = new LineGraphSeries<DataPoint>(getData(Data, "Day")); 

        graph.addSeries(series); 

       } else { 

       } 
      } else { 

      } 

     } else { 

     } 
    } 

Je sais que le graphique fonctionne comme j'ai essayé avec un spinner, mais je n'arrive pas à comprendre pourquoi les auditeurs ne sauvegardent pas les variables (que j'ai déclarées global - chaîne statique itemOne, etc) merci edit: les spinners contiennent plusieurs chaînes avec une initiale différente, mais celles utilisées sont mentionnées,

Répondre

0

J'ai réussi à le faire en sauvegardant les éléments cliqués de chaque spinner dans une fonction/variable globale. cela m'a alors permis d'effectuer une vérification logique qui retournerait vrai ou faux selon le cas. J'ai ensuite mis la méthode graphique dans les écouteurs de telle sorte qu'il serait mis en œuvre si la vérification logique retourné vrai