使用Menu制作弹出菜单
16lz
2021-01-26
使用Menu可以作为Android 点击菜单键后弹出菜单使用,这在一些常见的软件中很常见,比如,一些社交软件常,为用户实时提供多选项弹出菜单服务。
现在使用Menu实现该功能。
现在使用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();}
更多相关文章
- 【Android学习笔记】Spinner
- 使用ViewPager来实现Tab的效果
- Android绘制进阶之四:在位图上绘制文本并旋转
- Android启动动画
- android AlertDialog布局 ——2
- Android侧拉框Demo
- Android(安卓)4.1/4.1.1 TextView.setText for Html 引发ArrayIn
- H5 调用android原生相机代码分析
- android 逆向工程-工具篇 jadx(九)