Android-高级UI控件_Menu菜单

代码

Activity01

package com.lxt008;

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

public class Activity01 extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    /*创建menu*/
    public boolean onCreateOptionsMenu(Menu menu)
    {
        MenuInflater inflater = getMenuInflater();
        //设置menu界面为res/menu/menu.xml
        inflater.inflate(R.menu.menu, menu);
        return true;
    }

    /*处理菜单事件*/
    public boolean onOptionsItemSelected(MenuItem item)
    {
        //得到当前选中的MenuItem的ID,
        int item_id = item.getItemId();

        switch (item_id)
        {
            case R.id.about:
                /* 新建一个Intent对象 */
                Intent intent = new Intent();
                /* 指定intent要启动的类 */
                intent.setClass(Activity01.this, Activity02.class);
                /* 启动一个新的Activity */
                startActivity(intent);
                /* 关闭当前的Activity */
                Activity01.this.finish();
                break;
            case R.id.exit:
                Activity01.this.finish();
                break;
        }
        return true;
    }
}

Activity02

package com.lxt008;

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

public class Activity02 extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        /* 设置显示main2.xml布局 */
        setContentView(R.layout.main2);
    }

    /*创建menu*/
    public boolean onCreateOptionsMenu(Menu menu)
    {
        //为menu添加内容
        menu.add(0, 0, 0, R.string.ok);
        menu.add(0, 1, 1, R.string.back);
        return true;
    }

    /*处理menu的事件*/
    public boolean onOptionsItemSelected(MenuItem item)
    {
        //得到当前选中的MenuItem的ID,
        int item_id = item.getItemId();

        switch (item_id)
        {
            case 0:
            case 1:
                /* 新建一个Intent对象 */
                Intent intent = new Intent();
                /* 指定intent要启动的类 */
                intent.setClass(Activity02.this, Activity01.class);
                /* 启动一个新的Activity */
                startActivity(intent);
                /* 关闭当前的Activity */
                Activity02.this.finish();
                break;
        }
        return true;
    }
}

布局

menu

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/about"
          android:title="关于" />
    <item android:id="@+id/exit"
          android:title="退出" />
</menu>

main

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
</LinearLayout>

main2

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello2"
    >
    </TextView>
</LinearLayout>

string

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">主界面,点击关于会跳到另一个界面!(Activity01)</string>
    <string name="hello2">关于\nAndroid Menu使用范例!(Activity02)</string>
    <string name="app_name">lxt008 Android Demo</string>
    <string name="ok">确定</string>
    <string name="back">返回</string>
</resources>
时间: 2024-10-10 21:34:36

Android-高级UI控件_Menu菜单的相关文章

[Android] Android 让UI控件固定于底部的几种方法

Android 让UI控件固定于底部的几种方法1.采用linearlayout布局:android:layout_height="0dp" <!-- 这里不能设置fill_parent -->android:layout_weight="1" <!-- 这里设置layout_weight=1是最关键的,否则底部的LinearLayout无法到底部 --> 2. 采用relativelayout布局:android:layout_alignPa

Android自定义UI控件(简单方便版,但不灵活)

这种方法的优点就是简单,容易理解,适合开发一些不经常用到的自定义UI控件 缺点就是比较不灵活,如果其他应用想使用这个控件的话得改很多 简单来说,这个方法是用来做成品的,下一篇的方法是用来做模板的. 先看成品,这是一个标题栏控件: 由左右两个按钮和中一个TextView组成: 实现方法: 第一步:定义一个xml文件,用来设计你自定义控件的雏形 示例代码:文件名为title 1 <?xml version="1.0" encoding="utf-8"?> 2

Android 优秀UI控件 ---- FlowingDrawer

1,前天在git上看到了一个不错的控件 ,最近两天项目也没有那么赶了,就抽时间来写写代码,锻炼一下手感,先看一下效果吧. 2 整体来看 ,主要是有两块来实现的,①主界面的RecyclerView ,②菜单栏的LeftDrawerLayout , 先来将这个控件引到项目中  ,在build.gradle加入以下代码 compile 'com.mxn.soul:flowingdrawer-core:1.2.2' compile 'com.nineoldandroids:library:2.4.0'

UI控件之菜单(Menu)

(一)概述 本章给大家带来的是Android中的Menu(菜单),而在Android中的菜单有如下几种:OptionMenu:选项菜单,android中最常见的菜单,通过Menu键来调用SubMenu:子菜单,android中点击子菜单将弹出一个显示子菜单项的悬浮框, 子菜单不支持嵌套,即不能包括其他子菜单ContextMenu:上下文菜单,通过长按某个视图组件后出现的菜单,该组件需注册上下文菜单 本节我们来依依学习这几种菜单的用法~ (二)OptionMenu(选项菜单) 1)如何使用Opti

ANDROID L——Material Design详解(UI控件)

转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lollipop(5.0). 前几天发现Android5.0正式版的sdk已经可以下载了,而且首次搭载Android L系统的Nexus 6和 Nexus 9也即将上市. 所以是时候开始学习Android L了! 关于Android L如何配置模拟器和创建项目,如果大家有兴趣的话可以看看我之前的一篇文章: A

Android Material Design新UI控件使用大全 二

序言 上一篇中我们介绍了几个简单的新UI控件,相信很多小伙伴对Materil Design的视觉效果有了一定的了解,今天我们就继续介绍其他几个控件的玩儿法,让我们一探Materil Design的究竟,我们先来看一下我们今天要介绍的CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout及TabLayout, ok,我们接下来就逐一对这些控件进行解析,揭开他们神秘的面纱,来为我们服务,Let's Go. TabLayout 我们先来看官方的介绍

Android UI开源组件库BottomView ,第三方自定义UI控件

这里分享一个Android的非常经典实用而且简单方便的第三方UI控件库:BottomView(小米的米UI也用到了这个) 实现功能: 可以在底部弹出的View里自定义布局: 可以自定义是否可以触摸外部消失: 可以自定义事件: 可以自定义外围背景是否透明: 可以自定义动画: 如果需要的话,可以强制为顶部View显示 BottomView.jar库文件下载地址:http://download.csdn.net/detail/jay100500/7547055 BottomView的Demo下载地址:

Atitit.ui控件---下拉菜单选择控件的实现select html

Atitit.ui控件---下拉菜单选择控件的实现select   html 1. 调用& model的实现 1 2. -----select.jsp------ 1 1. 调用& model的实现 Proj.vod2 <% List li=new ArrayList(); Map m=new HashMap (); m.put("lab","爱情"); m.put("v","1"); li.add(m)

Android新线程中更新主线程中的UI控件

Android中的View都不是线程安全的,所以如果在某一个新线程中直接更新主线程中的UI控件时就会报如下错误: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. 为了解决在另一个线程中更新UI控件的问题,我们可以使用如下几种解决方案: 1. 自己写Handler解决,参见<And