Android里面主菜单里面设置菜单列表,单项选择,多项选择的实现

来源:互联网 发布:吉他谱制谱软件 编辑:程序博客网 时间:2024/06/05 16:04

首先在res/menu文件下的main.xml里面设置需要的主菜单按钮:

<menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    tools:context="com.xh.tx.caidan.MainActivity" >    <item        android:id="@+id/multi"        android:orderInCategory="98"        android:showAsAction="never"        android:title="@string/duoxuan"/>    <item        android:id="@+id/single"        android:orderInCategory="98"        android:showAsAction="never"        android:title="@string/danxuan"/>        <item        android:id="@+id/list"        android:orderInCategory="99"        android:showAsAction="never"        android:title="@string/caidanliebiao"/>    <item        android:id="@+id/action_settings"        android:orderInCategory="100"        android:showAsAction="never"        android:title="@string/action_settings"/></menu>
然后在values/strings.xml里面抽取出对应的中文:

<?xml version="1.0" encoding="utf-8"?><resources>    <string name="app_name">主菜单选项</string>    <string name="hello_world">Hello world!</string>    <string name="action_settings">Settings</string>    <string name="caidanliebiao">菜单列表</string>    <string name="danxuan">单项选择</string>    <string name="duoxuan">多项选择</string></resources>

按钮实现后如下图:

在主代码里面写实现点击后的功能,主要用AlertDialog.Builder对象,

package com.xh.tx.caidan;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;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) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();final String[] items={"转发到新浪微博","转发到QQ好友","转发到QQ空间","转发到微信"};if(id==R.id.list){AlertDialog dialog=new AlertDialog.Builder(this).setItems(items, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {MyTask(items[which]);Toast.makeText(getApplicationContext(), items[which], Toast.LENGTH_SHORT).show();}}).create();dialog.setTitle("对话框");dialog.show();}if(id==R.id.single){AlertDialog.Builder builder=new AlertDialog.Builder(this);builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(getApplicationContext(), "转发成功"+items[which], Toast.LENGTH_SHORT).show();dialog.dismiss();}});AlertDialog dialog=builder.create();dialog.show();}if(id==R.id.multi){AlertDialog.Builder builder=new AlertDialog.Builder(this);final boolean[] checkedItems={false,false,false,false};builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {}});AlertDialog dialog=builder.create();dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {String s="";for(int i=0;i<checkedItems.length;i++){if(checkedItems[i])s=s+","+items[i];}Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();}});dialog.show();}if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}private void MyTask(final String s){AlertDialog.Builder builder=new AlertDialog.Builder(this);AlertDialog dialog=builder.create();dialog.setTitle("转发到哪里");dialog.setButton(AlertDialog.BUTTON_POSITIVE,"确定"+s,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(getApplicationContext(), "转发成功", Toast.LENGTH_SHORT).show();}});dialog.show();}}
功能实现后点击按钮对应下图:





0 0