2011-01-29 73 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(); 
       } 
      });