2011-12-25 11 views
1

私のスピナーのアダプターをクリックすると正確に変更する必要があります。クリックしてスピナーをクリックしたときのアダプターの変更

私はSpinnerを "Make Your choice"という値で表示しようとしていますが、ユーザーがクリックするとSpinnerに別のアダプタがロードされ、彼が選択できるようになります。 。

は、ここに私のコード

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

ですが、それは働いていません。アプリケーションが起動すると、最初のアダプタの代わりに2番目のアダプタがロードされます。

ご協力ありがとうございます。

答えて

0

2番目のアダプタが設定されています。これは、スピナーが読み込まれたときにonItemSelectedメソッドが呼び出されるためです(最初の要素が選択されているため)。

とにかく、私はあなたが2つのアダプターを必要としないと思っています。あなたは上に "あなたのチョイス"を入れ、onItemSelectedをユーザーが選択した場合、彼を止めて本当の価値を選択することができます。

+0

うん、これは私が 考えていたものですが、それを行うためにそこに別の方法ですか? –

0

ユーザーがビューに触れたときに実際には、新しいアダプタをロードするために(スピナー)が可能です

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

}); 
関連する問題