Android:从Button打开Spinner

时间:2011-01-29 19:34:20

标签: android button spinner

在Android应用程序中,是否可以通过单击按钮打开微调器弹出窗口,而不是按下实际的微调器?

我尝试了以下内容:

Button btnChange = (Button)findViewById(R.id.btnChange);
            btnChange.setOnClickListener(new View.OnClickListener() {
                  public void onClick(View v) {
                     Spinner mySpinner = (Spinner) findViewById(R.id.sSpinner);
                     mySpinner.showContextMenu();
                  }
                });

3 个答案:

答案 0 :(得分:59)

很抱歉迟到的答案 - 有可能:

((Spinner) findViewById(R.id.mySpinner)).performClick();

答案 1 :(得分:14)

有可能,你只需将其称为弹出菜单,而不是微调器。

ImageView imageView = (ImageView) findViewById(R.id.image);
        imageView .setOnClickListener(new OnClickListener(){
            PopupMenu pum = new PopupMenu(this, findViewById(R.id.image));
            pum.inflate(R.menu.image_chooser_popup);
            pum.show();

          });
}

您的微调器(或弹出式)项目转到R.menu.image_chooser_popup:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:title="take a picture"
    android:titleCondensed="camera"
    android:visible="true"
    android:onClick="cameraIntent" />
<item
    android:title="choose picture from gallery"
    android:titleCondensed="string"
    android:visible="true"
    android:onClick="galleryIntent"/>

希望这个帮助一个人。如果您的回复有任何问题,请随意填写。

答案 2 :(得分:7)

试试这个:

Spinner mySpinner = (Spinner) findViewById(R.id.sSpinner);
Button btnChange = (Button)findViewById(R.id.btnChange);    
btnChange.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    mySpinner.performClick();
                }
            });