当前位置:操作系统 > 安卓/Android >>

Android教程(六)-- Menu菜单设计

空闲之余,写一篇。最近准备看看IOS的开发,据说可以在支持虚拟化的电脑上开发IOS的APP,而Object-C又跟Java的写法有较大的区别(繁杂很多)。但是自己有台IOS终端机,想弄些东西玩玩。所以接下来除了继续学习Android之外还兼修一下Object-C。

闲话不多说,接下来看看我们今天的学习内容,Menu菜单的设计。Menu菜单就是我们按下Menu键弹出来的菜单(这话好像有点废),但是它的表现方式有很多种,可以是在当前视图中弹出来,也可以是切换一个视图的。

我们今天说的是在当前视图中弹出来的。弹出两个选项,一是改变Textview的内容,二是退出程序。好的,这就来:

第一步,创建一个工程Ep.Menu,视图和活动的名称我就不改了。

第二步,写activity_main.xml,就是给Textview添加一个ID。


[java] 
<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:id="@+id/tv1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/hello_world" /> 
 
</RelativeLayout> 

<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:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>
第三步,重点,写MainActivity.java,主要写菜单选项和选中后触发的事件:

 

[java]
package com.example.ep.menu; 
 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.TextView; 
 
public class MainActivity extends Activity { 
 
    private TextView tv; 
 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
    } 
 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
        //获取Menu菜单控件  
        getMenuInflater().inflate(R.menu.main, menu); 
        //添加选项(组ID,选项ID,排序,标题)  
        menu.add(0,0,0,"set"); 
        menu.add(0,1,1,"exit"); 
        return super.onCreateOptionsMenu(menu); 
    } 
     
    public boolean onOptionsItemSelected(MenuItem item){ 
        super.onOptionsItemSelected(item); 
        //获取选项ID  
        switch (item.getItemId()) { 
        case 0: 
            tv=(TextView)findViewById(R.id.tv1); 
            tv.setText("Joven"); 
            break; 
 
        case 1: 
            this.finish(); 
            break; 
        } 
        return true; 
         
         
    } 
 

package com.example.ep.menu;

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

public class MainActivity extends Activity {

 private TextView tv;

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

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  //获取Menu菜单控件
  getMenuInflater().inflate(R.menu.main, menu);
  //添加选项(组ID,选项ID,排序,标题)
  menu.add(0,0,0,"set");
  menu.add(0,1,1,"exit");
  return super.onCreateOptionsMenu(menu);
 }
 
 public boolean onOptionsItemSelected(MenuItem item){
  super.onOptionsItemSelected(item);
  //获取选项ID
  switch (item.getItemId()) {
  case 0:
   tv=(TextView)findViewById(R.id.tv1);
   tv.setText("Joven");
   break;

  case 1:
   this.finish();
   break;
  }
  return true;
  
  
 }

}


好了我们现在来预览结果:

 \
 


这里之所以多了一个选项那是因为我们的menu文件夹中的menu.xml里面设置到有值,我们只需要删除掉它就可以了。

 \
 


好的再来看一次:

 补充:移动开发 , Android ,

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,