android spinner performClick onItemSelected

时间:2011-04-05 16:59:19

标签: android spinner

我对spinner感到有些问题。

我创建一个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);
}

有人知道这里有什么问题吗?

谢谢你们。

3 个答案:

答案 0 :(得分:18)

通过在我的Spinner中添加xml并将高度和宽度设置为零来解决问题。

答案 1 :(得分:0)

这看起来很像turorial,所以请回过头来看看。见下文:

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

这一行必须在onCreate()之内;

spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

答案 2 :(得分:0)

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

您的布局的XML中肯定有一个Spinner,然后您只需执行spinner = (Spinner) findViewById(R.id.WHATEVER_THE_ID_IS_IN_THE_XML);,因此您不需要new

P.S。这就是我在XML布局中定义Spinner的方法

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