java - 下面带有滚动和编辑文本的弹出菜单

标签 java android android-alertdialog popupmenu

我的屏幕上有一个按钮,该按钮位于屏幕上的某个位置(靠近顶部)。

我想单击按钮并获得此结果: 按钮正下方会打开一个菜单,让您选择文本(从列表中)或编写我自己的文本(其中写有“在此处键入..”)。

enter image description here

我有这个弹出菜单:

PopupMenu popupMenu = new PopupMenu(this, buttonChooseText);
    for (int i = 0; i < listDefaultText.size(); ++i) {
        // the list is from String type and contains "text1" and so on
        popupMenu.getMenu().add(listDefaultText.get(i);
    }
    popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            switch (item.getTitle().toString()) {
                case "Text1" :
                    //execute "text1" action
                    break;
                case "Text2" :
                    //execute "text2" action
                    break;
            }
            return false;
        }
    });
    popupMenu.show();

那么我怎样才能得到这个结果呢?

最佳答案

PopupMenu 可能无法满足您的要求,因为它在包含菜单项以外的 View 方面没有提供太多的灵 active 。使用PopupWindow相反,因为它支持自定义布局。 Here就是一个例子。

关于java - 下面带有滚动和编辑文本的弹出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45184520/

相关文章:

java - 如何使用内置的 AlertDialog_listItemLayout

java - 访问数据时对负索引求模会出错

java - 使用 lambda 表达式按降序对二维数组进行排序

android - 从(子)PreferenceScreen 返回时更新 PreferenceActivity 中现有的 Preference-item

java.io.FileNotFoundException :/sdcard/Hotel_Manager/HotelsMangerUser. dat(没有这样的文件或目录)

android - 将自定义对话框 'header' 更改为 AlertDialog 'header'

java - 不进入for循环内部

java - 在 Java lambda 中使用两个流来计算协方差

java - Android AlarmManager 执行代码时常无法正常工作

android - 设置警报对话框之间的时间