Android: Open 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();
}
});
Ответы
Ответ 1
В приложении Android можно открыть всплывающее окно с помощью нажатия кнопки, а не нажимать фактический счетчик?
По-видимому, нет. Я не вижу метода в SDK, который, казалось бы, вызывает всплывающий список.
ИМХО, это хорошо - все, что вы пытаетесь выполнить, возможно, может быть сделано каким-то другим способом, который будет менее запутанным для пользователей.
Ответ 2
Извините за поздний ответ - возможно:
((Spinner) findViewById(R.id.mySpinner)).performClick();
Ответ 3
Возможно, вы просто вызываете это всплывающее меню, а не 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();
});
}
Элементы Spinner (или всплывающие) идут в 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"/>
Надеюсь, это поможет кому-то. Если у вас есть какие-либо проблемы с моим ответом, заполните, пожалуйста, вопрос.
Ответ 4
Попробуйте следующее:
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();
}
});