Android-OptionMenu选项菜单

目标效果:

Android-OptionMenu选项菜单_第1张图片 Android-OptionMenu选项菜单_第2张图片 Android-OptionMenu选项菜单_第3张图片 

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


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.运行程序就显示目标效果了。


你可能感兴趣的:(android,toast,Activity,button,菜单)