今天我们讲下Android界面中的菜单选项,它可以分为两大类,分别是选项菜单和上下文菜单。
下面我们先看一下选项菜单,其实现方式也有两种,分别是在res的menu文件夹下自定义xml文件,
还有也可以在代码中自己定义菜单。
下面是这两种方式具体的实现代码:
1、使用xml文件实现菜单选项,xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu1"
android:orderInCategory="100"
android:showAsAction="never"
android:title="菜单一"/>
<item
android:id="@+id/menu2"
android:orderInCategory="100"
android:showAsAction="never"
android:title="菜单二"/>
<item
android:id="@+id/menu3"
android:orderInCategory="100"
android:showAsAction="never"
android:title="菜单三"/>
<item
android:id="@+id/menu4"
android:orderInCategory="100"
android:showAsAction="never"
android:title="菜单四"/>
</menu>
然后是MainActivity:
package com.example.optionmenu_01;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
/**
* 使用menu中的xml文件显示菜单
* @author Administrator
*
*/
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) {
//设置菜单所在的xml文件
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu1:
// showToast("第一个菜单");
//设置菜单被点击跳转到另外一个Activity
item.setIntent(new Intent(MainActivity.this,SecondActivity.class));
break;
case R.id.menu2:
showToast("第二个菜单");
break;
case R.id.menu3:
showToast("第三个菜单");
break;
case R.id.menu4:
showToast("第四个菜单");
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
private void showToast(String meg){
Toast.makeText(MainActivity.this, "您点击的是" + meg, 0).show();
}
}
2、接下来还有第二种方式,就是在Java文件中用代码实现选项菜单:
MainActivity:
package com.example.optionmenu_01;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
/**
* 在代码中自定义菜单
* @author Administrator
*
*/
public class SecondActivity extends Activity{
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_layout);
iv = (ImageView) findViewById(R.id.iv);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// menu.add("三国演义");
//此方法可以设置菜单的id,这样在onOptionsItemSelected才可以对菜单设置点击事件
menu.add(0, 100, 1, "三国演义");
menu.add(0, 101, 1, "西游记");
menu.add(0, 102, 1, "水浒传");
menu.add(0, 103, 1, "红楼梦");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 100:
iv.setImageResource(R.drawable.d_bishi);
break;
case 101:
iv.setImageResource(R.drawable.d_bizui);
break;
case 102:
iv.setImageResource(R.drawable.d_chanzui);
break;
case 103:
iv.setImageResource(R.drawable.d_chijing);
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
}