2011-04-05 78 views
5

我有一个小问题spinnerandroid spinner performClickItemSelected

我创建了一个Spinner用户单击一个按钮。 Spinner显示为应该是,但当onItemSelected应该被称为没有反应。

下面是代码

public void setUpSpinner(){ 
    spinner = new Spinner(this); 
    CustomArrayAdapter<String> adapter = new CustomArrayAdapter<String>(this,  android.R.layout.simple_spinner_item, getAsStrings()); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 
    spinner.setOnItemSelectedListener(this); 
} 

public void onClick(View view) {  
    spinner.performClick(); 
} 

public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {   
    String getName = (String) spinner.getSelectedItem(); 
    getListFromName(getName); 
} 

任何人都知道这里有什么问题?

谢谢你们。

回答

16

通过在我的xml与高度和宽度设定为零添加Spinner问题解决了。

+0

Thanx ....我被卡住了同样的问题........ – hemu 2012-12-19 06:12:08

+0

什么是一个很好的解决方案工作正常 – Santosh 2013-07-10 05:44:52

+0

@Bastaix你能告诉你如何申报微调。 – 2014-04-19 16:50:50

0

这看起来足够像turorial,所以请参考。见下:

我没有看到这个,但主类实现OnItemSelectedListener?此外,您将要在主类体内的onCreate()中实例化Spinner。

这条线需要在onCreate();

spinner.setOnItemSelectedListener(new MyOnItemSelectedListener()); 
+0

微调器在OnCreate其中'setUpSpinner()'被称为实例化定义一个微调,并且类实现onItemSelectedListener。 – Bastaix 2011-04-05 19:00:29

0

为什么你在设置中有spinner = new Spinner(this)

想必你已经有一个微调在布局的XML,那么你根本就spinner = (Spinner) findViewById(R.id.WHATEVER_THE_ID_IS_IN_THE_XML);,所以你并不需要一个new

附:这就是我在XML布局

<Spinner 
android:id="@+id/SPINNER_ID" 
android:layout_height="wrap_content" 
android:layout_width="fill_parent" 
android:gravity="center_horizontal" />