2017-12-20 7 views
0

Ich möchte einen Wert von spinner abrufen. Hier ist mein CodeSo rufen Sie den Wert vom Drehfeld ab

AddCustomerAcitivity.java

public class AddCustomerActivity extends AppCompatActivity{ 
Spinner spinnerCustomer; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_add_customer); 

    Toolbar toolbar = (Toolbar) findViewById(R.id.add_customer_toolbar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setTitle("Add New Customer"); 

    fetchId(); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.spinner_category, 
      android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnerCustomer.setAdapter(adapter); 
} 

private void fetchId() { 
    spinnerCustomer = findViewById(R.id.spinner_customer); 
} 
} 

String.xml

<string-array name="spinner_category"> 
    <item>Male</item> 
    <item>Female</item> 
</string-array> 

acitivty_add_customer.xml

<Spinner 
    android:id="@+id/spinner_customer" 
    android:layout_width="match_parent" 
    android:layout_height="30dp" 
    android:layout_margin="10dp"/> 

ich keine Datenbank bin mit dem Wert holen aus spinner. Ich hole Wert mit String-Array. Ich möchte seinen Wert in String.

+1

Mögliches Duplikat [Wie Spinner ausgewähltes Element Wert String erhalten?] (Https://stackoverflow.com/questions/10331854/how-to-get-spinner-selected-item-value-to- String) –

+0

@Durgesh Parkeh Bitte überprüfen Sie meine ans. –

+0

Überprüfen Sie diese https://stackoverflow.com/questions/16581536/setonitemselectedlistener-of-spinner-does-not-call – Raghavendra

Antwort

1

Sie benötigen die AdapterView.OnItemSelectedListener Schnittstelle danach zu implementieren, können Sie Ihre Werte von onItemSelected() Methode drucken.

Beispielcode:

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener{ 
    Spinner spinner; 
    String[] sampleData = { 
      "first", 
      "second", 
      "third", 
      "fourth", 
      "fifth" 
    }; 

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

     spinner.setOnItemSelectedListener(this); 
     ArrayAdapter aa = new ArrayAdapter(this, android.R.layout.simple_spinner_item, sampleData); 
     aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(aa); 
    } 

    @Override 
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
     Toast.makeText(getApplicationContext(), sampleData[i], Toast.LENGTH_LONG).show(); 
    } 

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

    } 
} 
2

Versuchen Sie, diese

String text = spinnerCustomer.getSelectedItem().toString(); 

bearbeiten

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



spinnerCustomer.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       String selectedItemText = (String) parent.getItemAtPosition(position); 
       // Notify the selected item text 
       Toast.makeText 
         (getApplicationContext(), "Selected : " + selectedItemText, Toast.LENGTH_SHORT) 
         .show(); 
      } 

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

      } 
     }); 
+0

Ich habe versucht, konnte aber nicht abrufen. Gib mir die Lösung –

+0

@DurgeshParkeh Bitte überprüfen Sie meine Bearbeitung ans. –

0

Sie es wie dies auch tun können.

spinnerCustomer=(Spinner)findViewById(R.id.spinner_customer); 
String[] arrayOfStrings=getResources().getStringArray(R.array.spinner_category); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item,arrayOfStrings); 

spinnerCustomer.setAdapter(adapter); 
final Spinner finalSpinnerCustomer = spinnerCustomer; 
finalspinnerCustomer.setOnItemClickListener(new AdapterView.OnItemClickListener() 
{ 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
     { 
      String item = ((TextView) view).getText().toString(); 
     Toast.makeText(this,"Clicked"+ item.toString(), Toast.LENGTH_SHORT).show(); 
     } 
}); 
+0

grund für die abstimmung? –

0

Sie müssen setOnItemSelectedListener auf Ihre Spinner die select event des Spinners zu bekommen. Es gibt Ihnen die ausgewählte Position und Sie können den Wert aus Ihrer Datenquelle mit derselben Position oder demselben Index abrufen.

String[] categories = getResources().getStringArray(R.array.spinner_category); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, categories); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnerCustomer.setAdapter(adapter); 
    spinnerCustomer.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
      String selectedValue = categories[i]; 
      Toast.makeText(AddCustomerActivity.this, "selected value " + selectedValue, Toast.LENGTH_SHORT).show(); 
     } 

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

     } 
    }); 
Verwandte Themen