Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to show the selected item in popup menu which is inside a fragment using a check box?

I am using an image button for a popup menu to popup everything is working fine but when I select an item in the menu the item is selected and it doesn't show the selection so that I could identify the selected item.The checkbox remains unchecked even after the selection

menu_icon_img=myView.findViewById(R.id.Id_customer_over_flow);
        menu_icon_img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (getActivity() != null) {
                    PopupMenu popup = new PopupMenu(getActivity(), v);
                    MenuInflater inflater = popup.getMenuInflater();
                    inflater.inflate(R.menu.sort_menu_items, popup.getMenu());
                    popup.show();
                    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                        @Override
                        public boolean onMenuItemClick(MenuItem item) {
                            switch (item.getItemId()) {
                                case R.id.select_name_a_z:
                                 if (item.isChecked()) item.setChecked(false);
                                    else item.setChecked(true);
                                    return true;
                                case R.id.select_name_z_a:
                                    if (item.isChecked()) item.setChecked(false);
                                    else item.setChecked(true);
                                    return true;

                                default:
                                    return false;
                            }
                        }
                    });
                }
            }

XML

<menu xmlns:android="http://schemas.android.com/apk/res/android"
        >
        <group
            android:checkableBehavior="single"
            >
            <item
                android:id="@+id/select_name_a_z"
                android:title="@string/name_a_z"
                android:checkable="true"
                />
            <item
                android:id="@+id/select_name_z_a"
                android:title="@string/name_z_a"
                android:checkable="true"
                />
        </group>
    </menu>
like image 285
Dhyan V Avatar asked Dec 05 '25 08:12

Dhyan V


1 Answers

The problem is you are creating the popup menu from onClick of an imageview. whenever a click event occures a new instance of popup menu is being created.

to avoid this initiate the popup menu in onCreate method. And call popup.show() from onClick() method.

like image 189
AFLAH ALI Avatar answered Dec 06 '25 23:12

AFLAH ALI