您的位置:首页 > 移动开发 > Android开发

Android-OptionMenu选项菜单

2016-04-25 19:16 465 查看
目标效果:









程序运行,点击右上角的三个点可现实菜单列表,点击列表中的“新页面”,可以跳转到图二所示的第二个页面,点击列表中“设置”和“确定”,可以吐司打印信息。

1.activity_main.xml页面放置TextView控件。

activity_main.xml页面:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tvOne" />

</RelativeLayout>


2.res文件夹下的menu文件夹存放的是activity页面对应的菜单布局页面,每次新建android页面都会在此文件夹下生成一个对应名字的xml文件,main.xml页面是第一个页面的菜单布局。
main.xml页面:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<!--
添加选项菜单
android:orderInCategory为排序序号
showAsAction为默认是否显示(never)默认不显示
android:title为菜单标题
-->
<item
android:id="@+id/action_set"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_set"/>

<item
android:id="@+id/action_sure"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_sure"/>
</menu>


3.strings.xml页面设置了TextView的显示信息。
strings.xml页面:
<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="app_name">选项菜单</string>
<string name="action_settings">Settings</string>
<string name="tvOne">第一个页面</string>
<string name="action_sure">确定</string>
<string name="action_set">设置</string>
<string name="title_activity_second">SecondActivity</string>
<string name="tvTwo">第二个页面</string>

</resources>


4.新建activity_second.xml页面和SecondActivity.java页面,作为跳转后的新页面,SecondActivity.java不做处理,activity_second.xml页面和activity_main.xml页面几乎一样。
activity_main.xml页面:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".SecondActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tvTwo" />

</RelativeLayout>


5.最后MainActivity.java页面处理菜单的点击和跳转。
MainActivity.java页面:
package com.example.optionmenu;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

/*创建选项菜单*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
/*动态添加菜单*/
//参数一位分组的id,参数二为菜单项id,参数三为菜单项排序,参数四为菜单描述
menu.add(1,100,1,"新页面");
return true;
}
/*菜单点击事件*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {//item为当前点击的菜单
switch (item.getItemId()) {
case R.id.action_set:
Toast.makeText(MainActivity.this,"点击了设置菜单",Toast.LENGTH_SHORT).show();
break;
case R.id.action_sure:
Toast.makeText(MainActivity.this,"点击了确定菜单",Toast.LENGTH_SHORT).show();
break;
case 100:
Intent intent=new Intent(MainActivity.this,SecondActivity.class);//创建意图
item.setIntent(intent);//跳转
break;
}
return super.onOptionsItemSelected(item);
}
}

菜单中有“新页面”,“设置”,“确定”三项,其中“新页面”是使用动态添加菜单方法,而“设置”和“确定”是使用布局添加菜单的方法。

6.运行程序就显示目标效果了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: