我正在努力使用ImageView作为单击按钮时需要的按钮,该按钮应该显示项目,就像单击微调器时一样。
final View imageButton = findViewById(R.id.imageButton);
imageButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View view) {
// display a list of suggestions !
}
});
如果有人能帮助我解决这个问题,我将不胜感激。
答案 0 :(得分:1)
首先,您要创建要显示的项目菜单
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/first"
android:title="First Menu Item"/>
<item
android:id="@+id/second"
android:title="Second Menu Item"/>
<item
android:id="@+id/third"
android:title="Third Menu Item"/>
</menu>
然后在“活动”中创建一个PopupMenu
PopupMenu pm = new PopupMenu(MainActivity.this, pBtn);
pm.getMenuInflater().inflate(R.menu.popup_menu, pm.getMenu());
pm.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()){
case R.id.first:
Toast.makeText(MainActivity.this, "Clicked First Menu Item", Toast.LENGTH_SHORT).show();
return true;
case R.id.second:
Toast.makeText(MainActivity.this, "Clicked Second Menu Item", Toast.LENGTH_SHORT).show();
return true;
case R.id.third:
Toast.makeText(MainActivity.this, "Clicked Third Menu Item", Toast.LENGTH_SHORT).show();
return true;
}
return true;
}
});
pm.show();
最后,您在点击监听器中将其称为popup menu
编辑:
例如创建一个字符串的ArrayList
ArrayList<String> popupItems = new ArrayList<String>();
用数据填充数组列表
然后使用此数组列表初始化弹出菜单
popupMenu = new PopupMenu(this, imageButton);
遍历数组将值添加到弹出菜单
for (int i =0; i < popupItems.size(); i++)
popupMenu.getMenu().add(Menu.NONE, 1, Menu.NONE, popupItems.get(i))
答案 1 :(得分:0)
您可以在对话框中显示项目,当您单击图像视图时显示对话框