package com.mys.activity;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.util.AttributeSet;
import android.view.InflateException;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.LayoutInflater.Factory;
import android.widget.Toast;
/**
*
* <p>
* DATE: 2011-3-1 下午01:21:25
* <p>
* HISTORY: 1.0
*
* @version 1.0
* @author mys(牟玉石)
* @since java jdk1.6.0_06<br>
* @beanid <br>
*
* 功能描述:<br>
*/
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private static final int ABOUT = 1;
private static final int EXIT = 2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
// 这里可以使用xml文件也可以使用代码方式,代码方式比较灵活一些~~~
// MenuInflater inflater = new MenuInflater(getApplicationContext());
// inflater.inflate(R.menu.options_menu, menu);
menu.add(0, ABOUT, 1, "关于");
menu.add(0, EXIT, 2, "退出");
setMenuBackgroud();
return true;
}
/**
* 处理点击菜单
*
* @param item
* @return
* @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)
* @author mys at 2011-3-1 下午01:21:01
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
int id = item.getItemId();
switch (id) {
case ABOUT: //如果使用xml方式,这里可以使用R.id.about
Toast.makeText(this, "点击了about菜单", Toast.LENGTH_SHORT).show();
break;
case EXIT: //同上
android.os.Process.killProcess(android.os.Process.myPid());
}
return super.onOptionsItemSelected(item);
}
/**
* 设置背景
*
* @author mys at 2011-3-1 下午01:04:29
*/
private void setMenuBackgroud() {
// TODO Auto-generated method stub
getLayoutInflater().setFactory(new Factory() {
@Override
public View onCreateView(String name, Context context,
AttributeSet attrs) {
// TODO Auto-generated method stub
if (name
.equals("com.android.internal.view.menu.IconMenuItemView")) {
LayoutInflater f = getLayoutInflater();
try {
final View view = f.createView(name, null, attrs); // 尝试创建我们自己布局
new Handler().post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
view
.setBackgroundResource(R.drawable.background); // 设置背景为我们自定义的图片
}
});
return view;
} catch (InflateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
});
}
}
07-21 11:16:05.964: WARN/KeyCharacterMap(1223): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
07-21 11:16:06.494: WARN/System.err(1223): android.view.InflateException: Binary XML file line #17: Error inflating class com.android.internal.view.menu.IconMenuItemView
07-21 11:16:06.588: WARN/System.err(1223): at android.view.LayoutInflater.createView(LayoutInflater.java:518)
07-21 11:16:06.594: WARN/System.err(1223): at cn.com.ingrasys.MenuBgReset$1.onCreateView(MenuBgReset.java:93)
07-21 11:16:06.615: WARN/System.err(1223): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
07-21 11:16:06.615: WARN/System.err(1223): at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
07-21 11:16:06.625: WARN/System.err(1223): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
07-21 11:16:06.635: WARN/System.err(1223): at com.android.internal.view.menu.MenuItemImpl.createItemView(MenuItemImpl.java:592)
07-21 11:16:06.644: WARN/System.err(1223): at com.android.internal.view.menu.MenuItemImpl.getItemView(MenuItemImpl.java:577)
07-21 11:16:06.655: WARN/System.err(1223): at com.android.internal.view.menu.IconMenuView.updateChildren(IconMenuView.java:351)
07-21 11:16:06.655: WARN/System.err(1223): at com.android.internal.view.menu.IconMenuView.initialize(IconMenuView.java:333)
07-21 11:16:06.655: WARN/System.err(1223): at com.android.internal.view.menu.MenuBuilder$MenuType.getMenuView(MenuBuilder.java:199)
07-21 11:16:06.665: WARN/System.err(1223): at com.android.internal.view.menu.MenuBuilder.getMenuView(MenuBuilder.java:323)
07-21 11:16:06.665: WARN/System.err(1223): at com.android.internal.policy.impl.PhoneWindow.initializePanelContent(PhoneWindow.java:858)
07-21 11:16:06.715: WARN/System.err(1223): at com.android.internal.policy.impl.PhoneWindow.openPanel(PhoneWindow.java:435)
07-21 11:16:06.729: WARN/System.err(1223): at com.android.internal.policy.impl.PhoneWindow.onKeyUpPanel(PhoneWindow.java:621)
07-21 11:16:06.734: WARN/System.err(1223): at com.android.internal.policy.impl.PhoneWindow.onKeyUp(PhoneWindow.java:1339)
07-21 11:16:06.734: WARN/System.err(1223): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1668)
07-21 11:16:06.734: WARN/System.err(1223): at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2560)
07-21 11:16:06.734: WARN/System.err(1223): at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2535)
07-21 11:16:06.734: WARN/System.err(1223): at android.view.ViewRoot.handleMessage(ViewRoot.java:1867)
07-21 11:16:06.734: WARN/System.err(1223): at android.os.Handler.dispatchMessage(Handler.java:99)
07-21 11:16:06.734: WARN/System.err(1223): at android.os.Looper.loop(Looper.java:123)
07-21 11:16:06.734: WARN/System.err(1223): at android.app.ActivityThread.main(ActivityThread.java:3647)
07-21 11:16:06.795: WARN/System.err(1223): at java.lang.reflect.Method.invokeNative(Native Method)
07-21 11:16:06.835: WARN/System.err(1223): at java.lang.reflect.Method.invoke(Method.java:507)
07-21 11:16:06.835: WARN/System.err(1223): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-21 11:16:06.855: WARN/System.err(1223): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-21 11:16:06.863: WARN/System.err(1223): at dalvik.system.NativeStart.main(Native Method)
07-21 11:16:06.885: WARN/System.err(1223): Caused by: java.lang.reflect.InvocationTargetException
07-21 11:16:06.915: WARN/System.err(1223): at java.lang.reflect.Constructor.constructNative(Native Method)
07-21 11:16:06.915: WARN/System.err(1223): at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
07-21 11:16:06.925: WARN/System.err(1223): at android.view.LayoutInflater.createView(LayoutInflater.java:505)
07-21 11:16:06.943: WARN/System.err(1223): ... 26 more
07-21 11:16:06.955: WARN/System.err(1223): Caused by: java.lang.NullPointerException
07-21 11:16:07.001: WARN/System.err(1223): at android.view.ViewConfiguration.get(ViewConfiguration.java:228)
07-21 11:16:07.009: WARN/System.err(1223): at android.view.View.<init>(View.java:1878)
07-21 11:16:07.014: WARN/System.err(1223): at android.view.View.<init>(View.java:1921)
07-21 11:16:07.024: WARN/System.err(1223): at android.widget.TextView.<init>(TextView.java:344)
07-21 11:16:07.045: WARN/System.err(1223): at android.widget.TextView.<init>(TextView.java:337)
07-21 11:16:07.064: WARN/System.err(1223): at com.android.internal.view.menu.IconMenuItemView.<init>(IconMenuItemView.java:61)
07-21 11:16:07.077: WARN/System.err(1223): at com.android.internal.view.menu.IconMenuItemView.<init>(IconMenuItemView.java:86)
07-21 11:16:07.094: WARN/System.err(1223): ... 29 more
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。