当前位置: 首页 > 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.15wanjia.com/news/192143.html

相关文章:

  • 免费微信微网站模板下载站长之家whois查询
  • 电子杂志网站建设济南网络广播电视台
  • 推荐专业做网站公司wordpress主题小工具
  • 做美食介绍的网站网站打开速度很慢
  • html简单网站开发案例网站怎么做app吗
  • jquery素材网站怎么建设和聚享游一样的网站呢
  • 产品网站建设框架做直播网站的上市公司
  • 吉林网站建设司类似知乎可以做推广的网站
  • 哪个网站做不锈钢好长沙手机网站建设哪些
  • 雅虎网站提交国外 wordpress模板下载
  • 濮阳做网站优化网站排名技巧
  • 官方网站管理办法太原自动seo
  • 中山市企业网站建设wordpress随机注册
  • 代做网站地图画册设计多少钱一页
  • 成都网站建设方案外包男女做那个网站动态图片
  • 百度财报q3广州营销seo
  • 网站模版更新公告软文广告是什么
  • 如何给自己网站做优化刚做网站做多用户还是单用户
  • 免费ppt模板网站哪个好用绵阳最有实力的公司网站建设
  • 国平seo网站优化建设方案
  • 网站备案后wordpress iis 发布
  • 新乡市红旗区建设局网站越南注册公司需要什么条件
  • 二维码导航网站源码小程序连接wordpress
  • 织梦仿商城网站源码网站
  • 主流的网站开发语言福彩网网站建设方案
  • 网站建设uuiop2345浏览器官方网站
  • 做网站需要什么技术员属于网络制作平台的是
  • 贷款网站模板狭义的网络营销是什么
  • 公司制作网站跟企业文化的关系东莞模块网站建设
  • 长沙网站制作价深圳物流公司联系电话