2014-11-19 3 views
3

문제스피너 선택 게재되지 않고 항목

내 문제는 데이터를 변경 한 후 내 SpinnerArrayAdapterSpinnerdropDownList에 항목 클릭에 반응하지 않습니다. 그러나 오리엔테이션 변경이 발생하면 모든 것이 잘 작동합니다 (?!). 편집 : 항목 클릭 수는 있지만 Spinner은 표시/표시하지 않는 것으로 나타났습니다. 방향 변경 후 선택한 항목 Spinner

건설

에 나타나기 때문에 나는 AutoCompleteAdapter implementing Filterable에 연결 AutoCompleteTextView(ACTV) 있습니다. ACTV에 일부 데이터를 입력하면 결과는 에 연결된 SpinnerArrayAdapter으로 전달됩니다.

AutoCompleteAdaptercustomListener이 설정되어 있으며 SpinnerArrayAdapter에 연결되어 있고 그 사이에서 데이터를 전달해야합니다.

이러한 구성이면의 이유는 사용자가 2 단계 선택을 할 수 있기 때문입니다. 하나는 드롭 다운으로 ACTV에서 데이터를 선택하고 두 번째는 데이터가 마음에들 경우를 대비하여 선택합니다. POTCODE를 입력하지 않고 잘못 클릭하거나 변경했을 때 지방에 연결된 ACTV 지역에 POSTCODE를 넣을 수 있습니다.

CODE는

SpinnerArrayAdapter 내부 데이터 변경을 담당하는 부분이다.

@Override 
public void setCitiesFromPostcode(ArrayList<String> cities) { 
    this.clear(); 
    this.addAll(cities); 
    notifyDataSetChanged(); 
} 
+0

그'Spinner'에 대해'onItemClick'을 구현하고 있습니다. – kId

+0

아니요 내 Spinner에 onItemClick이 없습니다. – JakubW

+0

* Adapter *의 값을 변경 한 후 해당 Spinner의 'onItemSelected'를 호출하십시오. – kId

답변

2

나는 ArrayAdapter과 비슷한 문제가 있습니다. 방금 BaseAdapter으로 변경했으며 작동합니다. 그 이유가 무엇인지 모르겠지만 ArrayAdapter 구현의 어딘가에 있습니다. 이것에 대한

2

두 가지 일반적인 원인 : 당신의 스피너는 스피너의 폭과 높이를 하드 코딩하여이를 확인, 값을 표시 할 수 없습니다 너무 작은 경우는, 충분히 큰 보일 수 있지만

  1. 이벤트 큰 무언가. 이 문제가 발생하면 맞춤 회 전자 항목 레이아웃을 사용하면 도움이 될 수 있습니다.
  2. 문자열로 변환 할 수있는 간단한 문자열이나 숫자가 아니라 배열에서 사용자 지정 개체를 사용하고 있습니다. 이 경우 사용자 정의 class MyAdapter extends BaseAdapter implements SpinnerAdapter { } 클래스를 사용하십시오.
+0

감사합니다. 나를 위해 그것은 첫 번째 사건이었다. –

관련 문제