使用Menu可以作为Android 点击菜单键后弹出菜单使用,这在一些常见的软件中很常见,比如,一些社交软件常,为用户实时提供多选项弹出菜单服务。
现在使用Menu实现该功能。

Java代码如下:

package com.example.zhucaidan;import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.widget.ArrayAdapter;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}public void My(final String s) {AlertDialog dialog = new AlertDialog.Builder(this).create();dialog.setTitle("你确定这要操作吗?");dialog.setMessage("真的要这样做吗?");dialog.setButton(AlertDialog.BUTTON_POSITIVE, "确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(getApplicationContext(), "已经成功" + s,Toast.LENGTH_SHORT).show();}});dialog.show();}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {int id = item.getItemId();if (id == R.id.list) {AlertDialog dialog = new AlertDialog.Builder(this).setItems(items,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {My(items[which]);}}).create();dialog.setTitle("菜单");dialog.show();}if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}}


以上代码可以实现类似下图的效果:

用户第一次点击菜单键会弹出以下界面

在菜单内用户点击选项后可以实现下面的效果:



要实现类似下列图片中的效果


java代码


if (id == R.id.siplist) {AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setSingleChoiceItems(items, -1,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(getApplicationContext(),"成功" + items[which], Toast.LENGTH_SHORT).show();dialog.dismiss();}});AlertDialog dialog = builder.create();dialog.show();}


   

实现多选效果


Java代码:

//实现多选final String[] items = { "转发至新浪微博", "转发至QQ好友", "转发至微信" };if (id == R.id.mslsit) {AlertDialog.Builder builder = new AlertDialog.Builder(this);final boolean[] S1 = { false, false, false };builder.setMultiChoiceItems(items, S1,new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which,boolean isChecked) {// TODO Auto-generated method stub}});AlertDialog dialog = builder.create();dialog.setButton(AlertDialog.BUTTON_POSITIVE, "确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubString s = "选择了";for (int j = 0; j < S1.length; j++) {if (S1[j]) {s = s + items[j];}}Toast.makeText(getApplicationContext(), s,Toast.LENGTH_SHORT).show();}});dialog.show();}




要实现该效果所需XML:

                          




更多相关文章

  1. 【Android学习笔记】Spinner
  2. 使用ViewPager来实现Tab的效果
  3. Android绘制进阶之四:在位图上绘制文本并旋转
  4. Android启动动画
  5. android AlertDialog布局 ——2
  6. Android侧拉框Demo
  7. Android(安卓)4.1/4.1.1 TextView.setText for Html 引发ArrayIn
  8. H5 调用android原生相机代码分析
  9. android 逆向工程-工具篇 jadx(九)

随机推荐

  1. mysql优化利器之explain使用介绍
  2. mysql explain的用法(使用explain优化查
  3. MySQL索引操作命令详解
  4. MySQL创建全文索引分享
  5. 详解Ubuntu Server下启动/停止/重启MySQL
  6. mysql免安装版1067错误终极解决办法图文
  7. MySQL 设计和命令行模式下建立详解
  8. 简单谈谈MySQL优化利器-慢查询
  9. MySQL 元数据查看及实例代码
  10. mysql 5.7.17 64bit安装配置方法图文教程