2017-09-12 5 views
0

일반적으로 회 전자는 setOnItemSelected에 의해 항목을 가져올 수 있지만 사용자가 전혀 선택하기 위해 클릭하지 않으면 어떻게됩니까? 그런 다음 사용자가 스피너를 클릭하여 항목을 선택했는지 여부를 감지하는 코드를 어떻게 편집해야합니까? 누구든지 조언을 좀 해주실 수 있습니까?스피너 항목이 선택되었는지 여부를 감지하는 방법은 무엇입니까?

s = (Spinner) findViewById(R.id.Rg); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, 
      R.array.gender_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    s.setAdapter(adapter); 
    s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
      gender = adapterView.getItemAtPosition(i).toString(); 

     } 

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

      Toast.makeText(Register.this, "Please select your gender", LENGTH_SHORT).show(); 
      return; 
     } 
    }); 
+0

당신 verride i가 선택된 위치 인'onItemSelected'에서'i'를 체크하거나's.getSelectedItem()'을 호출 할 수 있습니다. –

답변

0

당신이

Spinner.getSelectedItem()

또는

Spinner.getSelectedItemId()를 사용할 수 // 반환 : 여기

내 코드입니다 선택된 항목의 ID (o 어댑터 클래스의 방법 "주는 getItemId")

또는

Spinner.getSelectedItemPosition() 어댑터에서 선택한 항목의 위치 (인덱스를 반환 //)

+0

배열 세트 하나를 찾았습니다. 빈 아이템 또한 TextUtils.isEmpty()에 의해 감지 될 수 있습니다. –