记录一个小功能,使用场景,列表项点击弹出

如图:

android PopupWindow设置_ide

java类代码:

public class PopupUtil extends PopupWindow {
    private Activity context;
    private View view;
    private ListView listView;
    private TextView m_tv_reminderm, m_tv_Wallpaper_List;
    private ArrayList<String> arrayList;
    private String txtContent;

    public PopupUtil(Activity context, View parent,String txt) {
        super(context);
        this.context = context;
        this.txtContent=txt;
        //设置弹窗大小
        setWidth(300);
        setHeight(400);
        //设置可以获得焦点
        setFocusable(true);
        //设置弹窗内可点击
        setTouchable(true);
        //设置弹窗外可点击
        setOutsideTouchable(true);
        //背景
        setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        // setBackgroundDrawable(new BitmapDrawable());
        //加载弹窗布局
        view = LayoutInflater.from(context).inflate(R.layout.popu_menu, null);
        setContentView(view);
        //建立弹窗内容
        initData();
        //显示弹窗, 第一个参数是PopupWindow的锚点,第二和第三个参数分别是PopupWindow相对锚点的x、y偏移
        showAsDropDown(parent, 0, 0);
        // showAtLocation(parent, Gravity.BOTTOM, 0, 0);

    }

    private void initData() {

        m_tv_reminderm = view.findViewById(R.id.tv_reminder);

        m_tv_Wallpaper_List = view.findViewById(R.id.tv_Wallpaper_List);

        m_tv_reminderm.setOnClickListener(new View.OnClickListener() {
            @RequiresApi(api = Build.VERSION_CODES.KITKAT)
            @Override
            public void onClick(View v) {
                setNotfly();
            }
        });
        m_tv_Wallpaper_List.setOnClickListener(new View.OnClickListener() {
            @RequiresApi(api = Build.VERSION_CODES.KITKAT)
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(context, SetLockSrceenAct.class);
                intent.putExtra("itemName",txtContent);
                context.startActivity(intent);
                dismiss();
                context.finish();
            }
        });


    }

    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
    private void setNotfly() {
        NotifitionDialog dlg = new NotifitionDialog(context);
        if (!NotifyManagerUtils.isNotifyEnabled(context)) {
            dlg.show(new PerDialog.CallbackListener() {
                @Override
                public void onCancel() {
                }

                @Override
                public void onGet() {
                    NotifyManagerUtils.openNotificationSettingsForApp(context);
                }
            });
        } else {
            Intent intent = new Intent(context, SelTimeInFoAct.class);
            context.startActivity(intent);
            dismiss();
            context.finish();

        }


    }

对应的xml布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:orientation="vertical">


    <LinearLayout
        android:id="@+id/ll_show_more"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="right"
        android:background="@drawable/bg_popu_util"
        android:orientation="vertical"

        android:visibility="visible">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="0.5dp"
            android:layout_marginTop="14dp"
            android:background="#FFF0EEF6">

            <TextView
                android:id="@+id/tv_reminder"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:textSize="12dp"
                android:padding="5dp"
                android:text="Reminder"
                android:textColor="#FF010101" />
        </LinearLayout>

        <TextView
            android:id="@+id/tv_Wallpaper_List"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_marginHorizontal="5dp"
            android:layout_marginTop="16dp"
android:textSize="12dp"
            android:text="Lockscreen List"
            android:textColor="#FF010101" />
    </LinearLayout>
</LinearLayout>

最后出发按钮后的调用:

new PopupUtil(context, view,“name”);

                               -END