当前位置: 首页 > news >正文

关于《大学物理》网站资源建设的思路网站开发部门工资会计分录

关于《大学物理》网站资源建设的思路,网站开发部门工资会计分录,平原做网站,企业网页制作心得Popup menu:弹出式菜单 PopupMenu,弹出菜单,一个模态形式展示的弹出风格的菜单,绑在在某个View上,一般出现在被绑定的View的下方(如果下方有空间)。 注意:弹出菜单是在API 11和更高版…

Popup menu:弹出式菜单

PopupMenu,弹出菜单,一个模态形式展示的弹出风格的菜单,绑在在某个View上,一般出现在被绑定的View的下方(如果下方有空间)。

注意:弹出菜单是在API 11和更高版本上才有效的。

核心步骤:

(1)通过PopupMenu的构造函数实例化一个PopupMenu对象,需要传递一个当前上下文对象以及绑定的View。

(2)调用PopupMenu.setOnMenuItemClickListener()设置一个PopupMenu选项的选中事件。

(3)使用MenuInflater.inflate()方法加载一个XML文件到PopupMenu.getMenu()中。

(4)在需要的时候调用PopupMenu.show()方法显示。

需求

点击右上角的"…“,下拉出来"重启"和"关闭”,点击"重启"或者"关闭",弹出一个弹窗确认是否需要重启或者关闭设备;再点击确定,就会重启或者关机该设备;点击取消,什么都不做,继续保持再主launcher界面。

在这里插入图片描述

AndroidMainfest.xml

添加重启和关机的权限

<uses-permission android:name="android.permission.REBOOT" />
<uses-permission android:name="android.permission.SHUTDOWN" />

res/menu/main_menu.xml

创建main_menu.xml文件,menu中包含item(重启和关机);

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"><itemandroid:id="@+id/action_restart"android:title="重启"android:icon="@drawable/ic_restart"app:showAsAction="never"/><itemandroid:id="@+id/action_shutdown"android:title="关机"android:icon="@drawable/ic_power_off"app:showAsAction="never"/>
</menu>

重启图标:drawable/ic_restart.xml

在这里插入图片描述

<vector xmlns:android="http://schemas.android.com/apk/res/android"android:width="24dp"android:height="24dp"android:viewportWidth="24"android:viewportHeight="24"android:tint="?attr/colorControlNormal"><pathandroid:fillColor="@android:color/white"android:pathData="M17.65,6.35C16.2,4.9 14.21,4 12,4c-4.42,0 -7.99,3.58 -7.99,8s3.57,8 7.99,8c3.73,0 6.84,-2.55 7.73,-6h-2.08c-0.82,2.33 -3.04,4 -5.65,4 -3.31,0 -6,-2.69 -6,-6s2.69,-6 6,-6c1.66,0 3.14,0.69 4.22,1.78L13,11h7V4l-2.35,2.35z"/>
</vector>

tips:去掉android:tint=“?attr/colorControlNormal"这个属性可以让图标变成白色,也就是android:fillColor=”@android:color/white"这个属性可以生效。

关机图标:drawable/ic_power_off.xml

在这里插入图片描述

<vector xmlns:android="http://schemas.android.com/apk/res/android"android:width="24dp"android:height="24dp"android:viewportWidth="24"android:viewportHeight="24"android:tint="?attr/colorControlNormal"><pathandroid:fillColor="@android:color/white"android:pathData="M13,3h-2v10h2V3zM16.59,6.59L18,8c3.87,3.87 3.9,10.24 0.1,14.14 -3.79,3.9 -10.23,3.87 -14.12,-0.08C-0.1,18.1 -0.07,11.66 3.82,7.77l1.41,-1.41L4.2,5.2C-0.18,9.58 -0.16,17.03 4.3,21.4c4.47,4.36 11.91,4.35 16.37,-0.02 4.46,-4.38 4.47,-11.83 0.02,-16.2L16.59,6.59z"/>
</vector>

tips:去掉android:tint=“?attr/colorControlNormal"这个属性可以让图标变成白色,也就是android:fillColor=”@android:color/white"这个属性可以生效。

三个点图标:drawable/ic_more_vert.xml

在这里插入图片描述

<vector xmlns:android="http://schemas.android.com/apk/res/android"android:width="24dp"android:height="24dp"android:viewportWidth="24"android:viewportHeight="24"><pathandroid:fillColor="@android:color/white"android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
</vector>

activity_main.xml

此文件中指出三个点图标的位置

<LinearLayout
...
...
<ImageViewandroid:id="@+id/menuButton"android:layout_width="40dp"android:layout_height="40dp"android:layout_marginStart="10dp"android:src="@drawable/ic_more_vert"android:padding="8dp"/>
</LinearLayout>	

android:src="@drawable/ic_more_vert"是三个点的图标,将三个点的图标显示在LinearLayout中

MainActivity.java

  1. 在OnCreate方法中绑定三个点图标的监听事件

     protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setupClickListeners();}
    
  2. 监听

    findViewById(R.id.menuButton).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {showPopupMenu(view);}});
    

R.id.menuButton是activity_main.xml中设置的id,setOnClickListener监听点击事件,当点击时触发showPopupMenu(view)

showPopupMenu方法

 private void showPopupMenu(View view) {// View当前PopupMenu显示的相对View的位置PopupMenu popupMenu = new PopupMenu(this, view);// menu布局popupMenu.getMenuInflater().inflate(R.menu.main_menu, popupMenu.getMenu());// menu的item点击事件popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem item) {if (item.getItemId() == R.id.action_restart) {showConfirmationDialog("重启设备", "您确定要重启设备吗?", item.getItemId());} else if (item.getItemId() == R.id.action_shutdown) {showConfirmationDialog("关闭设备", "您确定要关闭设备吗?", item.getItemId());}return false;}});
//        // PopupMenu关闭事件
//        popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener() {
//            @Override
//            public void onDismiss(PopupMenu menu) {
//                Toast.makeText(getApplicationContext(), "关闭PopupMenu", Toast.LENGTH_SHORT).show();
//            }
//        });popupMenu.show();}

当点击重启或者关机按钮时触发事件

popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem item) {if (item.getItemId() == R.id.action_restart) {showConfirmationDialog("重启设备", "您确定要重启设备吗?", item.getItemId());} else if (item.getItemId() == R.id.action_shutdown) {showConfirmationDialog("关闭设备", "您确定要关闭设备吗?", item.getItemId());}return false;}});

showConfirmationDialog

private void showConfirmationDialog(String title, String message, int itemId) {new AlertDialog.Builder(this).setTitle(title).setMessage(message).setPositiveButton("确定", (dialog, which) -> {dialog.cancel();if (R.id.action_restart == itemId) {restartDevice();} else {shutdownDevice();}}).setNegativeButton("取消", (dialog, which) -> {}).setIcon(R.id.action_restart == itemId ? R.drawable.ic_restart : R.drawable.ic_power_off).show();
}

restartDevice

private void restartDevice() {try {// 需要系统应用签名PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);pm.reboot(null);} catch (Exception e) {Toast.makeText(this, "重启失败: " + e.getMessage(), Toast.LENGTH_LONG).show();}
}

shutdownDevice

private void shutdownDevice() {try {PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);Method shutdownMethod = pm.getClass().getMethod("shutdown", boolean.class,String.class, boolean.class);shutdownMethod.invoke(pm, false, null, false); // 执行关机} catch (Exception e) {Toast.makeText(this, "关机失败: " + e.getMessage(), Toast.LENGTH_LONG).show();}
}

最终效果

点击三个点按钮
在这里插入图片描述
点击重启或者关机
在这里插入图片描述
点击取消回到主界面;
点击确定重启或者关机执行操作。

注意:普通权限可以执行重启操作,但是不能执行关机操作,关机操作需要系统签名获取系统权限。

签名总结

由于Android studio出现些许问题,未能实践成功,但具体步骤如下:

  1. AndroidManifest.xml
    添加shareuid属性

  2. build中选择如下选项
    在这里插入图片描述

  3. APK
    在这里插入图片描述

  4. 首次创建选Create new…
    在这里插入图片描述

  5. 创建一个.jks文件
    在这里插入图片描述

  6. 点击next

  7. 选择release版本
    在这里插入图片描述

  8. 点击create生产签名的apk

  9. 其他总结:
    在这里插入图片描述
    链接:https://blog.csdn.net/Sunxiaolin2016/article/details/100891402

命令:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore path/to/your/keystore.keystore your_app.apk your_alias_name

path/to/your/keystore.keystore 这个是本地的签名文件路径

http://www.dtcms.com/a/497785.html

相关文章:

  • 建设工程发布公告的网站app定制的价格开发
  • 最新的网站建设软件宁波市建设教育培训网
  • 重庆网站制作做UI设计的网站
  • 网站图片设置链接wordpress twentyten 漏洞
  • 哪些网站布局设计做的比较好的乐达淄博网站建设制作
  • 江苏网站建设平台wordpress 导航文字图片
  • 泰兴网站制作广告营销策划案
  • 通辽做网站哪家好北京app制作开发公司
  • wordpress 请求数量搜索排名优化软件
  • 企业网站维护更新怎么才能创建网站
  • 接帮人家做网站的网站云服务器怎么用
  • 网站建设包六个购买友情链接
  • 知名wordpress架构网站东莞做网站公司电话
  • 网站策划书注意事项项目计划书封面设计
  • 有口碑的免费网站建设做网站什么价位
  • 公司网站建设推广词1网站建设的目标是什么意思
  • 谷城做网站做网站公司苏州
  • 查询网站备案查询淘宝seo推广优化
  • 做网站销售会问哪些问题芜湖企业网站建设
  • 深圳服务网站入口seo网站关键词排名优化公司
  • 太原北京网站建设公司哪家好装潢设计公司门头
  • 为什么要做营销型的网站建设网络营销推广方案案例分析
  • 如何做免费的公司网站网站制作工作室制作平台
  • 摄影工作室官网企业网站优化分为哪两个方向
  • 购物网站排名小学生手工制作大全图
  • 泰州专业网站建设公司网上商城 网站建设 解决方案
  • pc网站如何做移动适配优秀平面广告设计
  • dede网站迁移营销型网站建设的流程
  • 网站互动wordpress主题使用教程
  • 网站维护 设计互联云主机