2017-12-20 4 views
0

spinnerから値を取得したいとします。ここで は私のコードスピナーから値を取得する方法

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

acitivty_add_customer.xml

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> 

である私から値を取得するためにデータベースを使用していませんspinner。私は文字列配列を使用して値を取得しています。私はその値をStringにしたい。

+1

の可能性のある重複した[文字列にスピナー選択した項目の値を取得する方法?](https://stackoverflow.com/questions/10331854/how-to-get-spinner-selected-item-value-to-文字列) –

+0

@Durgesh Parkeh私のansをチェックしてください。 –

+0

これを確認するhttps://stackoverflow.com/questions/16581536/setonitemselectedlistener-of-spinner-does-not-call – Raghavendra

答えて

1

あなたはonItemSelected()方法から自分の価値観を印刷することができ、その後AdapterView.OnItemSelectedListenerインターフェイス を実装する必要があります。

サンプルコード:

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

が、これは

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

編集

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

私は試しましたが、取得できませんでした。私に解答を与えてください –

+0

@DurgeshParkeh私の編集ansをチェックしてください。 –

0

あなたもこのようにそれを行うことができます試してみてください。

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

投票の理由? –

0

あなたはスピナーのselect eventを得るためにあなたのスピナーにsetOnItemSelectedListenerに持っています。選択したポジションが表示され、同じ位置またはインデックスでデータソースから値を取得できます。

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) { 

     } 
    }); 
関連する問題