2011-12-25 2 views
1

클릭 할 때 나의 Spinner의 어댑터를 정확하게 변경해야합니다.Spinner를 클릭 할 때 어댑터 변경

Spinner에 "Make Your choice"값을 표시하고 사용자가 클릭하면 다른 어댑터가 Spinner에로드되고 선택을 할 수 있습니다 ("Make Your Choose"표시 없음). .

여기에 내 코드

ArayAdapter adapterclasse = new ArrayAdapter(this,android.R.layout.simple_spinner_item, affp.classes); 
ArrayAdapter adaptermodule = new ArrayAdapter(this,android.R.layout.simple_spinner_item, affp.matiers); 
spinner.setAdapter(adapterclasse); 
spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
     spinner.setAdapter(adaptermodule); 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> parentView) { 
     // your code here 
    } 
}); 

이지만 작동하지 않습니다. 앱이 시작되면 첫 번째 어댑터 대신 두 번째 어댑터가로드됩니다.

도와 주셔서 감사합니다.

답변

0

두 번째 어댑터는 스피너가로드 될 때 onItemSelected 메서드가 호출되므로 정상입니다 (첫 번째 요소가 선택됨).

어쨌든, 일반적으로 두 개의 어댑터가 필요하다고 생각하지 않습니다. 사용자는 "Make Your choise"를 맨 위에 놓고 onItemSelected를 선택하면 사용자를 중지시키고 실제 값을 선택하도록 요청할 수 있습니다.

+0

그래이 난에 대한 생각했지만 그렇게 할 수있는 또 다른 방법이 무엇인가를로드 할 수있어? –

0

사실, 사용자가보기 (회 전자)을 만지지 새 어댑터

spinner.setOnTouchListener(new OnTouchListener() 
{  
    @Override 
    public boolean onTouch(View v, MotionEvent event) 
    { 
     spinner.setAdapter(adapterclasse2); 
     return false; 
    } 

}); 
관련 문제