2011-01-29 72 views
11

在Android应用程序中,是否可以通过按钮单击而不是按下实际微调器来打开微调器弹出窗口?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(); 
        } 
       }); 

回答

-7

在Android应用中,是有可能打开从一个按钮,单击微调弹出而不是按实际微调的?

显然不是。我在SDK中看不到似乎触发弹出列表的方法。

恕我直言,这是一件好事 - 无论你试图完成什么,都可能以其他方式完成,这对用户来说不会造成混淆。

57

对不起,迟到的回答 - 这是可能的:

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

它永远不会太晚回答:http://xkcd.com/979/ – 2012-04-02 16:44:47

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"/> 

希望这一个帮助一些之一。如果您对我的回复有任何问题,请随时填写以询问。

5

试试这个:

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