2017-12-20 23 views
0

spinner에서 값을 가져 오려고합니다. 여기스피너에서 값을 가져 오는 방법

AddCustomerAcitivity.java 내 코드 String.xml

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

내가로부터 값을 가져 오기 위해 데이터베이스를 사용하고 있지 않다

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

acitivty_add_customer.xml

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); 
} 
} 

입니다 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

당신은 그 후 AdapterView.OnItemSelectedListener 인터페이스 를 구현해야합니다, 당신은 onItemSelected() 방법에서 당신의 가치를 인쇄 할 수 있습니다.

샘플 코드 :

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

     } 
    });