2012-03-04 24 views
0

BaseAdapterから拡張されたアダプタがあります。私はスピナーでそれを使用しています。私はアイテムがそこから選択されたときにonItemSelectedListenerを発射することができません。Spinnerで起動するonItemSelectedListenerを取得できませんか?

public class MyAdapter extends BaseAdapter { 
    .. 
} 

public void foo() { 
    MyAdapter adapter = new MyAdapter(...); 
    adapter.setStuff(new String[] { "foo0", "foo1", "fooN" }); 

    Spinner spinner = (Spinner)findViewById(R.id.foo); 
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) { 
      Log.e("####", "hello?..."); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 
      Log.e("####", "hello?..."); 
     } 
    }); 
    spinner.setAdapter(adapter); 
} 

スピナーは、そうでない場合は罰金動作し、私は項目を選択したときに、私はただのコールバックを受信しません。コールバックは、ArrayAdapterから派生したアダプタでのみ機能しますか?アダプタの実装を見ずに

おかげ

+0

'setAdapter()'の前に 'setOnItemSelectedListener()'を呼び出してみてください。 – CommonsWare

+0

こんにちは、okはそれを試しましたが、まだ何もありませんでした。アー。 – user291701

+0

'setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){'おそらく、あなたは 'AdapterView'の代わりに異なる' import'を持っています –

答えて

1

は、私はあなたがどこかのアダプタの実装でミスを犯したことを推測することができます。あなたの実装方法がわかりません。おそらくに実装されています。そうでなければコードはコンパイルされませんが、十分な構造を提供していないと、必要なものが失われます。

なぜ私はあなたがスピナーを戻すためにArrayAdapterを使用しているのではないかと不思議です。

関連する問題