简体   繁体   English

Android:从按钮打开微调器

[英]Android: Open Spinner from Button

In an Android application, is it possible to open the spinner popup from a button click instead of pressing the actual spinner?在 Android 应用程序中,是否可以通过单击按钮而不是按下实际的微调器来打开微调器弹出窗口?

I have tried the following:我尝试了以下方法:

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

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

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

It is possible, you just call it popup menu, not spinner. 有可能,你只需将其称为弹出菜单,而不是微调器。

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

          });
}

Your spinner (or popup) items goes to R.menu.image_chooser_popup: 您的微调器(或弹出)项目转到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"/>

Hope this one helps some one. 希望这个帮助一个人。 If you have any issues with my responce, please fill free to ask. 如果您对我的回复有任何问题,请填写免费询问。

Try this one: 试试这个:

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();
                }
            });
public class MainActivity extends AppCompatActivity {

    TextInputEditText packageName,partnerId,userName,mobileNo;
    Spinner dropDownMenu;
    ImageView dropDownImg;
    String[] loginType = {"Select","STAGE","PRODUCTION"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initViews();

    }

    private void initViews(){
        packageName = findViewById(R.id.packageName);
        partnerId = findViewById(R.id.partnerId);
        userName = findViewById(R.id.userName);
        mobileNo = findViewById(R.id.mobileNo);
        dropDownMenu = findViewById(R.id.dropdown_spinner);
        dropDownImg = findViewById(R.id.dropdown_img);
        ArrayAdapter spinnerAdapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_expandable_list_item_1,loginType);
        dropDownMenu.setAdapter(spinnerAdapter);
        dropDownMenu.setOnItemSelectedListener(dropDownOnClick());
        dropDownImg.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                System.out.println("schjsjcgg");
                dropDownMenu.performClick();
            }
        });
    }

    private AdapterView.OnItemSelectedListener dropDownOnClick(){
       return new AdapterView.OnItemSelectedListener() {
           @Override
           public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
               if (adapterView.getItemAtPosition(i).equals("Select")){
                   String item1 = adapterView.getItemAtPosition(i).toString();
                   System.out.println("Item1 = "+item1);

               }else{
                   String item2 = adapterView.getItemAtPosition(i).toString();
                   System.out.println("Item2 = "+item2);

               }
           }

           @Override
           public void onNothingSelected(AdapterView<?> adapterView) {

           }
       };
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM