您的位置:首页 > 移动开发 > Android开发

Android学习实践:5.菜单与对话框,系统信息及结束进程

2015-09-23 23:02 549 查看
打开res/values/strings.xml,加入显示菜单所需要的字符串:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Demo1</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">设置</string>
<string name="action_about">关于</string>
<string name="action_exit">退出</string>
<string name="action_openactivity">打开另一个</string>
<string name="action_phoneCall">打电话</string>
<string name="action_sendSMS">发短信</string>
</resources>


打开res/menu/main.xml,加入菜单项:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.demo1.MainActivity" >

<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never"/>
<item
android:id="@+id/action_about"
android:orderInCategory="100"
android:title="@string/action_about"
app:showAsAction="never"/>
<item
android:id="@+id/action_exit"
android:orderInCategory="100"
android:title="@string/action_exit"
app:showAsAction="never"/>
</menu>


打开MainActivity.java,修改onOptionItemSelected方法:

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings)
{
return true;
}
switch(id)
{
case R.id.action_about:
StringBuilder sb=new StringBuilder();
sb.append("手机型号:".concat(android.os.Build.MODEL).concat("\n"));
sb.append("SDK版本:".concat(Integer.toString(android.os.Build.VERSION.SDK_INT)).concat("\n"));
sb.append("系统版本:".concat(android.os.Build.VERSION.RELEASE).concat("\n"));
sb.append("源码控制版本:".concat(android.os.Build.VERSION.INCREMENTAL).concat("\n"));
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.app_name);
builder.setMessage(sb.toString());
builder.setPositiveButton("确定",null);
builder.create().show();
break;
case R.id.action_exit:
android.os.Process.killProcess(android.os.Process.myPid());
break;
}
return super.onOptionsItemSelected(item);
}


运行后按手机上的菜单键后如下图:



MainActivity.onOptionsItemSelected方法的参数就是当前选中的菜单项,通过item.getItemId()返回菜单项的Id,这个和menu/main.xml中定义的是相对应的。其中,action_exit会响应退出菜单将进程结束,调用了android.os.Process.killProcess(android.os.Process.myPid()),而action_about则响应关于菜单调用对话框来显示系统的部分信息,对话框则使用了AlertDialog.Builder.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: