阅读《android从入门到精通》(28)——使用xml的选项菜单(代码片段)

SweetLoverFT SweetLoverFT     2023-01-12     447

关键词:

概述

关于选项菜单,请参考阅读《Android 从入门到精通》(27)——选项菜单,不再赘述

程序示例

完整工程:http://download.csdn.net/detail/sweetloveft/9439976

1.MainActivity.java

package com.sweetlover.activity;

import com.sweetlover.optionmenu.R;

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

public class MainActivity extends Activity 

	@Override
	protected void onCreate(Bundle savedInstanceState) 
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	

	@Override
	public boolean onCreateOptionsMenu(Menu menu) 
		// TODO Auto-generated method stub
		MenuInflater inflater = getMenuInflater();
		inflater.inflate(R.menu.root, menu);
		return super.onCreateOptionsMenu(menu);
	

	@Override
	public boolean onPrepareOptionsMenu(Menu menu) 
		// TODO Auto-generated method stub
		return super.onPrepareOptionsMenu(menu);
	

	@Override
	public boolean onOptionsItemSelected(MenuItem item) 
		// TODO Auto-generated method stub
		switch (item.getItemId()) 
		case R.id.delete:
			Toast.makeText(MainActivity.this, "删除菜单被点击了!", Toast.LENGTH_SHORT)
					.show();
			break;
		case R.id.save:
			Toast.makeText(MainActivity.this, "保存菜单被点击了!", Toast.LENGTH_SHORT)
					.show();
			break;
		case R.id.help:
			Toast.makeText(MainActivity.this, "帮助菜单被点击了!", Toast.LENGTH_SHORT)
					.show();
			break;
		case R.id.add:
			Toast.makeText(MainActivity.this, "添加菜单被点击了!", Toast.LENGTH_SHORT)
					.show();
			break;
		case R.id.detail:
			Toast.makeText(MainActivity.this, "详细菜单被点击了!", Toast.LENGTH_SHORT)
					.show();
			break;
		case R.id.send:
			Toast.makeText(MainActivity.this, "发送菜单被点击了!", Toast.LENGTH_SHORT)
					.show();
			break;
		
		return super.onOptionsItemSelected(item);
	

	@Override
	public void onOptionsMenuClosed(Menu menu) 
		// TODO Auto-generated method stub
		super.onOptionsMenuClosed(menu);
		Toast.makeText(MainActivity.this, "选项菜单关闭了!", Toast.LENGTH_SHORT)
				.show();
	

2.activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="30dp" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:textSize="20sp"
        android:text="@string/tittle" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:textSize="20sp"
        android:text="@string/note" />

</LinearLayout>

3.string.xml

<resources>

    <string name="app_name">OptionMenu</string>
    <string name="tittle">Option Menu Application</string>
    <string name="note">单击 Menu 键</string>
    <string name="oper1">删除</string>
    <string name="oper2">保存</string>
    <string name="oper3">帮助</string>
    <string name="oper4">添加</string>
    <string name="oper5">详细</string>
    <string name="oper6">发送</string>

</resources>

4.res/menu/root.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <group
        android:id="@+id/group1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
        <item
            android:id="@+id/delete"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:icon="@drawable/miku"
            android:orderInCategory="1"
            android:title="@string/oper1">
        </item>
        <item
            android:id="@+id/save"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:icon="@drawable/miku"
            android:orderInCategory="2"
            android:title="@string/oper2">
        </item>
        <item
            android:id="@+id/help"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:icon="@drawable/miku"
            android:orderInCategory="3"
            android:title="@string/oper3">
        </item>
        <item
            android:id="@+id/add"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:icon="@drawable/miku"
            android:orderInCategory="4"
            android:title="@string/oper4">
        </item>
        <item
            android:id="@+id/detail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:icon="@drawable/miku"
            android:orderInCategory="5"
            android:title="@string/oper5">
        </item>
        <item
            android:id="@+id/send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:icon="@drawable/miku"
            android:orderInCategory="6"
            android:title="@string/oper6">
        </item>
    </group>

</menu>

阅读《android从入门到精通》(29)——四大布局

LinearLayout类方法RelativeLayout类方法TableLayout类方法AbsoluteLayout类方法 查看详情

阅读《android从入门到精通》(29)——四大布局

LinearLayout类方法RelativeLayout类方法TableLayout类方法AbsoluteLayout类方法 查看详情

阅读《android从入门到精通》(27)——选项菜单(代码片段)

选项菜单(OptionMenu)使用Menu按键触发的菜单叫做选项菜单android.R.drawable属性OptionMenu示例完整工程:http://download.csdn.net/detail/sweetloveft/9436986本程序主要学习OptionMenu的使用,需要关注的是MainActivity.java里面的on 查看详情

阅读《android从入门到精通》(27)——选项菜单(代码片段)

选项菜单(OptionMenu)使用Menu按键触发的菜单叫做选项菜单android.R.drawable属性OptionMenu示例完整工程:http://download.csdn.net/detail/sweetloveft/9436986本程序主要学习OptionMenu的使用,需要关注的是MainActivity.java里面的on 查看详情

阅读《android从入门到精通》(25)——标签切换(代码片段)

标签切换(Tab)java.lang.Object;android.view.View;android.widget.ViewGroup;android.widget.FrameLayout;Tab示例完整工程:http://download.csdn.net/detail/sweetloveft/9431225使用的AndroidManifest.xml 查看详情

阅读《android从入门到精通》(23)——列表视图(代码片段)

列表视图(ListView)android.widget.ViewGroup;android.widget.AdapterView;android.widget.ListView;继承于AdapterView类,通常需要和列表适配器ListAdapter配合起来使用ListView类方法ListView示例完整工程:http://downlo 查看详情

阅读《android从入门到精通》(22)——网格视图(代码片段)

网格视图(GridView)继承于AdapterView类,通常需要和列表适配器ListAdapter配合使用GridView类方法GridView示例完整工程:http://download.csdn.net/detail/sweetloveft/9426612下述工程主要学习GridView的用法,GridView的运用包含 查看详情

阅读《android从入门到精通》(21)——滚动视图(代码片段)

滚动视图(ScrollView)java.lang.Object;android.view.View;android.widget.ViewGroup;android.widget.FrameLayout;android.widget.ScrollView;注意,这里的ScrollView只支持垂直滚动条。ScrollView类方法ScrollView示例 查看详情

阅读《android从入门到精通》(19)——评分条(代码片段)

评分条(RatingBar)java.lang.Object;android.view.View;android.widget.ProgressBar;android.widget.AbsSeekBar;android.widget.RatingBar;RatingBar类方法RatingBar示例完整工程:http://download.csdn.net 查看详情

阅读《android从入门到精通》(15)——数字时钟(代码片段)

数字时钟(DigitalClock)java.lang.Object;android.view.View;android.widget.TextView;android.widget.DigitalClock;DigitalClock类方法DigitalClock示例完整工程:http://download.csdn.net/detail/sweetlov 查看详情

阅读《android从入门到精通》(30)——字体(代码片段)

TypeFace类方法TypeFace的五种字型和四种字体TypeFace示例完整工程:http://download.csdn.net/detail/sweetloveft/94565311.MainActivity.javapackagecom.sweetlover.activity;importcom.sweetlover.typeface.R;importandroid.ap 查看详情

阅读《android从入门到精通》(18)——拖动条(代码片段)

拖动条(SeekBar)android.widget.ProgressBar;android.widget.AbsSeekBar;android.widget.SeekBar;SeekBar类方法SeekBar示例完整工程:http://download.csdn.net/detail/sweetloveft/9419276下面演示了SeekBar调节音量 查看详情

阅读《android从入门到精通》(31)——intent(代码片段)

意图(Intent)java.lang.Object;android.content.intend;android.content.pm.LabeledIntent;主要分为ActionIntent 和BroadcastIntent,Intent服务于Android三大核心组件:Activity、Services、BroadcastRecei 查看详情

阅读《android从入门到精通》(12)——自动完成文本框(代码片段)

自动完成文本框(AutoCompleteTextView)java.lang.Object;android.view.View;android.view.TextView;android.widget.EditText;android.widget.AutoCompleteTextView;MultiAutoCompleteTextView;AutoCompleteTe 查看详情

阅读《android从入门到精通》(36)——notification通知(代码片段)

Notification属性Android系统服务分类核心代码完整实例:http://download.csdn.net/detail/sweetloveft/94825081.获取NotificationManagerNotificationManagernm=(NotificationManager)getSystemService(NOTIFICATION_SERVIC 查看详情

阅读《android从入门到精通》(36)——notification通知(代码片段)

Notification属性Android系统服务分类核心代码完整实例:http://download.csdn.net/detail/sweetloveft/94825081.获取NotificationManagerNotificationManagernm=(NotificationManager)getSystemService(NOTIFICATION_SERVIC 查看详情

阅读《android从入门到精通》(13)——日期选择器(代码片段)

日期选择器(DatePicker)java.lang.Object;android.view.View;android.view.ViewGroup;android.widget.FrameLayout;android.widget.DataPicker;DatePicker类方法DatePicker示例完整工程:http://download.csdn. 查看详情

阅读《android从入门到精通》(35)——后台服务

服务分为本地服务(程序内部的耗时操作,比如:下载线程),远程服务(内部应用程序相互调用),类似于Linux中的守护进程java.lang.Object;android.content.Context;android.content.ContextWrapper;android.app.S 查看详情