2016-06-29 5 views
0

Ich bin wirklich kurz davor, meinen Spinner dazu zu bringen, etwas zu tun, wenn ein Gegenstand ausgewählt wird. Ich kann einfach nicht herausfinden, wie man den onitemselectedlistener richtig einrichtet. Ich denke, mein Problem ist nicht zu wissen, wie die Argumente an meine onItemSelected-Methode übergeben werden. Hilfe, um den letzten Teil dieser Arbeit zu bekommen, wird sehr geschätzt. HierAufrufen eines Spinner aufeinem Hörer abwählen

ist der Code:

public class MainActivity extends AppCompatActivity { 



    Spinner spinner; 
    String[][] testScoreList = new String[3][3]; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     //Load test scores into arraylist 
     nameArrayListMethod(); 
     spinner.setOnItemSelectedListener(onItemSelected()); 


    } 

    //This method loads test scores into an array and populates spinner 
    public void nameArrayListMethod(){ 

     InputStreamReader InputSR = null; 
     BufferedReader BufferedRdr = null; 
     String thisLine = null; 

     AssetManager am = getAssets(); 
     String[] SpinnerNames = new String[3]; 

     try { 
      InputSR = new InputStreamReader(am.open("scoresdata/test_scores.txt")); 
      BufferedRdr = new BufferedReader(InputSR); 

      // open input stream test_scores for reading purpose. 

      int i = 0; 
      while ((thisLine = BufferedRdr.readLine()) != null) { 
       //System.out.println(thisLine); 

       String[] parts = thisLine.split(" "); 
       testScoreList[i][0] = parts[0]; 
       testScoreList[i][1] = parts[1]; 
       testScoreList[i][2] = parts[2]; 

       SpinnerNames[i] = testScoreList[i][0]; //Extract first column for spinner 
       i = i +1; 
      } 
      BufferedRdr.close(); 
      InputSR.close(); 

     } catch (Exception e) { 
      e.printStackTrace(); 

     } 

     spinner= (Spinner) findViewById(R.id.spinner1); 

     ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item, SpinnerNames); 
     spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(spinnerArrayAdapter); 

    } 

    public void onItemSelected(AdapterView<?> parent, View view, int pos,long id) { 
     Toast.makeText(parent.getContext(), 
       "OnItemSelectedListener : " + parent.getItemAtPosition(pos).toString(), 
       Toast.LENGTH_SHORT).show(); 
    } 

} 

Antwort

1

Sie können Daten Tow Arten hinzufügen

Methode 1

Wenn Sie eine einfache Ein-Zeilen-Daten haben, verwenden Sie diese Methode.

Schritt 1

Add String-Array in string.xml Datei

<string-array name="ArrayName"> 
     <item>A</item> 
     <item>B</item> 
     <item>C</item> 
     <item>D</item> 
     <item>E</item> 
     <item>F</item> 
    </string-array> 

android:entries="@string/ArrayName" in Ihrer XML-Spinner-Komponente hinzufügen

und erhalten ausgewählten Wert mit String text = spinner.getSelectedItem().toString();

Spinner.setOnItemSelectedListener(new OnItemSelectedListener() 
{ 
    @Override 
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) 
    { 
     Toast.makeText(topThis, "Value = "+spinner.getSelectedItem().toString();, Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> parentView) 
    { 
     Toast.makeText(topThis, "herf", Toast.LENGTH_LONG).show(); 
    } 
}); 

Methode 2

für HERE individuelle Adapter abgeschlossen tutorial

1

Es sieht aus wie:

spinner.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      Toast.makeText(parent.getContext(), 
        "OnItemSelectedListener : " + parent.getItemAtPosition(pos).toString(), 
        Toast.LENGTH_SHORT).show(); 
     } 
    }); 
1

Versuchen Sie, diese

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    });