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 ,