fragment中的问题

来源:互联网 发布:linux elf文件 破解 编辑:程序博客网 时间:2024/05/16 06:58

在extends fragment中设置弹窗时遇到的问题

  • Toast.makeText的问题


Toast.makeText(login.this, "用户名或密码错误", Toast.LENGTH_SHORT).show(); 在一般的extendsAppCompatActivity中可以直接用“当前类名.class”+“要显示的文字”+Toast.LENGTH_SHORT).show()来显示没有焦点的信息;而在fragment中,要将“当前类名.class”替换成getActivity
  • intent中的问题

Intent intent = new Intent(this, login.class);startActivity(intent);finish();
这是一般的intent传输格式,在fragment中要将this同样换成getActivity

-附加一个fragment中的弹窗code

private void openPopupWindow(View v) {        //防止重复按按钮        if (popupWindow != null && popupWindow.isShowing()) {            return;        }        //设置PopupWindow的View        View view = LayoutInflater.from(getActivity()).inflate(R.layout.view_popupwindow, null);        popupWindow = new PopupWindow(view, RelativeLayout.LayoutParams.MATCH_PARENT,                RelativeLayout.LayoutParams.WRAP_CONTENT);        //设置背景,这个没什么效果,不添加会报错        popupWindow.setBackgroundDrawable(new BitmapDrawable());        //设置点击弹窗外隐藏自身        popupWindow.setFocusable(true);        popupWindow.setOutsideTouchable(true);        //设置动画        popupWindow.setAnimationStyle(R.style.PopupWindow);        //设置位置        popupWindow.showAtLocation(v, Gravity.BOTTOM, 0, navigationHeight);        //设置消失监听        popupWindow.setOnDismissListener(this);        //设置PopupWindow的View点击事件        setOnPopupViewClick(view);        //设置背景色        setBackgroundAlpha(0.5f);    }    private void setOnPopupViewClick(View view) {        TextView tv_pick_phone, tv_pick_zone, tv_cancel;        tv_pick_phone = (TextView) view.findViewById(R.id.tv_pick_phone);        tv_pick_zone = (TextView) view.findViewById(R.id.tv_pick_zone);        tv_cancel = (TextView) view.findViewById(R.id.tv_cancel);        tv_pick_phone.setOnClickListener(this);        tv_pick_zone.setOnClickListener(this);        tv_cancel.setOnClickListener(this);    }    //设置屏幕背景透明效果    public void setBackgroundAlpha(float alpha) {        WindowManager.LayoutParams lp = getActivity().getWindow().getAttributes();        lp.alpha = alpha;        getActivity().getWindow().setAttributes(lp);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.head:                openPopupWindow(v);                break;            case R.id.tv_pick_phone:                Toast.makeText(getActivity(), "从手机相册选择", Toast.LENGTH_SHORT).show();                popupWindow.dismiss();                break;            case R.id.tv_pick_zone:                Toast.makeText(getActivity(), "从空间相册选择", Toast.LENGTH_SHORT).show();                popupWindow.dismiss();                break;            case R.id.tv_cancel:                popupWindow.dismiss();                break;        }    }    @Override    public void onDismiss() {        setBackgroundAlpha(1);    }
  • popupwindow图
    -这里写图片描述

    原作者文章地址

原创粉丝点击