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

网站开发费用属无形资产吗珠海网站开发公司

网站开发费用属无形资产吗,珠海网站开发公司,网站动态标签,山东省离线地图导航下载目录 Android ContextMenu 上下文菜单 ContextMenu 范例 参考文档 Android SubMenu 子菜单 范例 参考文档 Android PopupMenu 弹出菜单 范例 参考文档 Android ContextMenu 上下文菜单 在Android开发中,ContextMenu(上下文菜单)为…

目录

Android ContextMenu 上下文菜单

ContextMenu

范例

参考文档

Android SubMenu 子菜单

范例

参考文档

Android PopupMenu 弹出菜单

范例

参考文档


Android ContextMenu 上下文菜单

在Android开发中,ContextMenu(上下文菜单)为用户提供了一种简便的方式来执行对特定组件的操作。例如,长按列表中的一个项目时,可能会出现一个菜单,让用户选择“编辑”、“删除”等操作。

ContextMenu

Android提供了一种非常简单的方式来创建和处理上下文菜单(ContextMenu),主要通过在Activity中重写几个关键方法来实现。

这种方式不依赖于XML布局文件或是直接实例化某个类,而是通过与Activity生命周期紧密相关的几个回调方法来管理。

1. registerForContextMenu(View view)

  • 说明:这个方法用于为特定的View注册上下文菜单。当用户长按该View时,就会触发上下文菜单的显示。
  • 使用场景:通常在Activity的onCreate()方法中调用此方法,为想要显示上下文菜单的View注册。

2. onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)

  • 说明:当注册了上下文菜单的View被长按时,这个方法会被调用。在这里,你可以定义上下文菜单的内容,比如菜单项。
  • 使用场景:需要重写这个方法来填充上下文菜单,例如添加菜单项。

3. onContextItemSelected(MenuItem item)

  • 说明:用户选择上下文菜单中的某个项时,这个方法会被触发。在这里,你可以处理用户的点击事件。
  • 使用场景:需要重写这个方法来响应用户对上下文菜单项的选择。

调用顺序和流程

  1. 注册上下文菜单:在onCreate()方法中,通过调用registerForContextMenu(view)为特定的View注册上下文菜单。
  2. 创建上下文菜单:当用户长按已注册的View时,会自动调用onCreateContextMenu(menu, v, menuInfo)方法,在这里定义上下文菜单的内容。
  3. 响应菜单项点击:用户点击上下文菜单中的某个项时,onContextItemSelected(MenuItem item)方法会被调用,在这里处理点击事件。

范例

1、修改 activity_main.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="match_parent"xmlns:tools="http://schemas.android.com/tools"android:orientation="vertical"android:gravity="center"tools:context=".MainActivity"><ListViewandroid:id="@+id/listview"android:layout_width="match_parent"android:layout_height="wrap_content" />
</LinearLayout>

2、修改 MainActivity.java

package com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {ListView listView;String[] items = {"Java", "C#", "Python", "Ruby", "PHP", "C++", "Go", "Swift", "Kotlin", "JavaScript"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView = findViewById(R.id.listview);ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, items);listView.setAdapter(adapter);// 注册 Context MenuregisterForContextMenu(listView);}// 创建 Context Menu@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {super.onCreateContextMenu(menu, v, menuInfo);getMenuInflater().inflate(R.menu.context_menu, menu);}// 处理 Context Menu 项点击事件@Overridepublic boolean onContextItemSelected(MenuItem item) {AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();int itemId = item.getItemId();if (itemId == R.id.action_edit) {Toast.makeText(this, "编辑 " + items[info.position], Toast.LENGTH_SHORT).show();return true;} else if (itemId == R.id.action_delete) {Toast.makeText(this, "删去 " + items[info.position], Toast.LENGTH_SHORT).show();return true;} else {return super.onContextItemSelected(item);}}
}

3、在res/menu目录下创建一个名为context_menu.xml的文件(如果没有menu目录,则需要创建它)。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:id="@+id/action_edit"android:title="编辑"/><itemandroid:id="@+id/action_delete"android:title="删去"/>
</menu>

参考文档

  1. Android menus

Android SubMenu 子菜单

在Android开发中,SubMenu(子菜单)是一种常用的UI组件,允许在一个主菜单项下创建一个二级菜单。这对于分类和组织复杂的菜单项非常有用,可以帮助用户更好地导航应用的功能。(子菜单不是单独存在的,而是在 OptionMenu 或者 ContextMenu 中可以添加子菜单)

范例

1、创建菜单资源文件
首先,需要在res/menu目录下创建一个XML文件来定义菜单项,比如main_menu.xml。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"><!-- checkableBehavior 的可选值由三个:single设置为单选,all为多选,none为普通选项 --><group android:checkableBehavior="none"><item android:id="@+id/create"android:title="新建" /><item android:id="@+id/edit"android:title="编辑" /></group><item android:id="@+id/saveall"android:title="子菜单" ><menu xmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@+id/save"android:title="保存" /><item android:id="@+id/save_as"android:title="另存为..." /><itemandroid:id="@+id/save_all"android:title="保存全部" /></menu></item><item android:id="@+id/help"android:title="帮助" />
</menu>

2、修改 activity_main.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="match_parent"xmlns:tools="http://schemas.android.com/tools"android:orientation="vertical"android:gravity="center"tools:context=".MainActivity"><Buttonandroid:id="@+id/btn_pop"android:text="长按我弹出上下文菜单"android:layout_width="wrap_content"android:layout_height="wrap_content" />
</LinearLayout>

3、修改 MainActivity.java

package com.example.myapplication;import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btnPop = findViewById(R.id.btn_pop);registerForContextMenu(btnPop);}@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {super.onCreateContextMenu(menu, v, menuInfo);getMenuInflater().inflate(R.menu.main_menu, menu);}@Overridepublic boolean onContextItemSelected(MenuItem item) {int itemId = item.getItemId();if (itemId == R.id.create) {// 处理新建操作return true;} else if (itemId == R.id.edit) {// 处理编辑操作return true;} else if (itemId == R.id.save) {// 处理保存操作return true;} else if (itemId == R.id.save_as) {// 处理另存为操作return true;} else if (itemId == R.id.save_all) {// 处理保存全部操作return true;} else if (itemId == R.id.help) {// 处理帮助操作return true;} else {return super.onContextItemSelected(item);}}}

参考文档

  1. Android menus

Android PopupMenu 弹出菜单

在Android开发中,PopupMenu是一个非常有用的组件,它可以在用户界面的任何位置显示一个弹出菜单。这个菜单可以通过编程方式动态创建,也可以从XML菜单资源文件加载。

PopupMenu在Android中是一个用于显示上下文菜单的非常方便的组件,它可以附着在指定的视图(View)上。PopupMenu有几种构造方法允许你根据需要选择不同的参数来创建弹出菜单。以下是如何使用这些构造方法以及如何设置和显示PopupMenu的具体步骤:

  • 基本构造方法:PopupMenu(Context context, View anchor): 这是最基本的构造函数,只需要上下文(通常是Activity)和锚点视图(即触发弹出菜单的视图)。
  • 指定重力的构造方法:PopupMenu(Context context, View anchor, int gravity): 这个构造函数除了上下文和锚点视图外,还允许你指定弹出菜单的重力(gravity),例如Gravity.END,控制菜单显示的位置相对于锚点视图。
  • 完全自定义样式的构造方法:PopupMenu(Context context, View anchor, int gravity, int popupStyleAttr, int popupStyleRes): 这是最灵活的构造函数,它除了上述参数外,还允许你通过popupStyleAttr和popupStyleRes指定弹出菜单的样式。

范例

步骤1: 创建菜单资源文件
首先,在res/menu目录下创建一个名为main_menu.xml的菜单资源文件。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:id="@+id/action_item1"android:title="选项 1"/><itemandroid:id="@+id/action_item2"android:title="选项 2"/><itemandroid:id="@+id/action_item3"android:title="选项 3"/>
</menu>

步骤2: 修改 activity_main.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="match_parent"xmlns:tools="http://schemas.android.com/tools"android:orientation="vertical"android:gravity="center"tools:context=".MainActivity"><Buttonandroid:id="@+id/button_show_popup"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="显示弹出菜单"android:layout_centerInParent="true"/>
</LinearLayout>

步骤3: 修改 MainActivity.java

package com.example.myapplication;import android.os.Bundle;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.PopupMenu;
import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button buttonShowPopup = findViewById(R.id.button_show_popup);buttonShowPopup.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// 创建PopupMenu实例PopupMenu popupMenu = new PopupMenu(MainActivity.this, v, Gravity.RIGHT);// 从XML资源文件中填充菜单项popupMenu.getMenuInflater().inflate(R.menu.main_menu, popupMenu.getMenu());// 设置菜单项点击事件popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem item) {Toast.makeText(MainActivity.this, "选中了: " + item.getTitle(), Toast.LENGTH_SHORT).show();return true;}});// 显示PopupMenupopupMenu.show();}});}
}

参考文档

  1. Android menus

 

http://www.yayakq.cn/news/676883/

相关文章:

  • 视频网站建设公司排名装修公司网站建设解决方案
  • 自己的网站做app网站制作咨询
  • 建设网站大概多少钱怎么查网站的浏览量
  • 响应式网站模板 开源网站开发谷歌浏览器js不更新
  • 建设部网站资质查询学网站开发哪个好
  • 网站的优化用什么软件下载网站过程
  • 阜阳网站建设工作室电子商务都学什么
  • 泉州最专业手机网站建设开发百度推广营销怎么做
  • 南通网站设计制作公司龙华建设网站
  • 免费做思维导图的网站wordpress 充值卡
  • 汽车网站的建设方向做网站赔钱了
  • 万能浏览器有哪些长沙企业seo服务
  • 杭州网站建设caiyiduo地产平面设计主要做什么
  • 北京正规网站建设经历内蒙古建筑培训网官网
  • 查询网站空间c 网站购物车怎么做
  • 做国外有那些网站推介网手机版
  • 网络优化网站建设wordpress客户端配置
  • 58同城兰州网站建设高端网站设计高端网站制作
  • 网站开发报价标准wordpress数据库用户名密码忘记
  • 网站底部版权信息免费咨询律师不收费
  • 杭州高端网站建设公司做微网站的第三方登录界面
  • 如何做网站的内链和外链石家庄设计公司排名
  • 在税局网站上如何做进项税转出枣强网站建设公司
  • 建湖做网站多少钱wordpress无法上传歌曲
  • 保定网站制作排名需要多少钱电脑自带的网页制作软件
  • 关键词挖掘爱网站电商建设网站哪家好
  • win2012服务器网站建设小企业网站用什么主机好
  • 17网站一起做网店质量怎么样深圳排名seo公司
  • WordPress瀑布流图片站wordpress无编辑栏
  • 网络营销整合营销嘉兴做网站优化的公司