menu的item.getItemId()返回的是什么了

jerrygj 2011-05-10 10:06:53
我想等到这样的目的:

public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
System.out.println(item.getItemId());

if (item.getItemId() == 0) {
System.out.println("intreasting");
} else if (item.getItemId()==1) {
System.out.println("intreasting");
}

return super.onOptionsItemSelected(item);
}

但是没有结果,item.getItemId()返回的到底是什么了,我改怎么做啊,谢谢
menu是用xml生成的
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">

<item android:id="@+id/item_a"
android:icon="@drawable/gimp"
android:title="Gimp">
</item>

</menu>


具体代码如下

package gj.android.eyesight;



import android.app.AlertDialog;
import android.app.Dialog;
import android.app.TabActivity;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.Toast;

public class EyesightMain extends TabActivity implements OnTabChangeListener {

//声明TabHost对象
private TabHost mTabHost;
protected int myMenuSettingTag=0;
protected Menu myMenu;

private static final int myMenuResources[] = { R.menu.a_menu,R.menu.b_menu, R.menu.c_menu};



public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//setContentView(R.layout.mainlayout);
//若增加这项就需要对对局文件修改,增加tabhost

//取得TabHost对象
//mTabHost = getTabHost();
mTabHost=this.getTabHost();
LayoutInflater.from(this).inflate(R.layout.mainlayout, mTabHost.getTabContentView(), true);
/* 为TabHost添加标签 */
//新建一个newTabSpec(newTabSpec)
//设置其标签和图标(setIndicator)
//设置内容(setContent)

mTabHost.addTab(mTabHost.newTabSpec("tab_gard")
.setIndicator("TAB 1",getResources().getDrawable(R.drawable.img1))
.setContent(R.id.gardlinarlayout));
mTabHost.addTab(mTabHost.newTabSpec("tab_test")
.setIndicator("TAB 2",getResources().getDrawable(R.drawable.img2))
.setContent(R.id.testlinarlayout));
mTabHost.addTab(mTabHost.newTabSpec("tab_set")
.setIndicator("TAB 3",getResources().getDrawable(R.drawable.img3))
.setContent(R.id.setlinarlayout));

//设置TabHost的背景颜色
mTabHost.setBackgroundColor(Color.argb(150, 22, 70, 150));
//设置TabHost的背景图片资源
mTabHost.setBackgroundResource(R.drawable.bg0);

//设置当前显示哪一个标签
mTabHost.setCurrentTab(0);

//标签切换事件处理,setOnTabChangedListener
/*mTabHost.setOnTabChangedListener(new OnTabChangeListener()
{
// TODO Auto-generated method stub
@Override
public void onTabChanged(String tabId)
{
Dialog dialog = new AlertDialog.Builder(EyesightMain.this)
.setTitle("提示")
.setMessage("当前选中:"+tabId+"标签")
.setPositiveButton("确定",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
dialog.cancel();
}
}).create();//创建按钮

dialog.show();
}
});*/
}





@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub

myMenu = menu;
myMenu.clear();//娓呯┖MENU鑿滃崟
// Inflate the currently selected menu XML resource.
MenuInflater inflater = getMenuInflater();
//浠嶵abActivity杩欓噷鑾峰彇涓�釜MENU杩囨护鍣�
switch (myMenuSettingTag) {
case 1:
inflater.inflate(myMenuResources[0], menu);
//鍔ㄦ�鍔犲叆鏁扮粍涓搴旂殑XML MENU鑿滃崟
break;
case 2:
inflater.inflate(myMenuResources[1], menu);
break;
case 3:
inflater.inflate(myMenuResources[2], menu);
break;
default:
inflater.inflate(myMenuResources[0], menu);
break;
}



return super.onCreateOptionsMenu(menu);
}





/*@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
// TODO Auto-generated method stub
//Toast.makeText(getApplicationContext(), "即将转到另一个界面",
// Toast.LENGTH_LONG).show();


return super.onMenuItemSelected(featureId, item);
}*/





@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
System.out.println(item.getItemId());

if (item.getItemId() == 0) {
System.out.println("intreasting");
} else if (item.getItemId()==1) {
System.out.println("intreasting");
}

return super.onOptionsItemSelected(item);
}





@Override
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub

if (tabId.equals("tab_gard")) {
myMenuSettingTag = 1;
}
if (tabId.equals("tab_test")) {
myMenuSettingTag = 2;
}
if (tabId.equals("tab_set")) {
myMenuSettingTag = 3;
}
if (myMenu != null) {
onCreateOptionsMenu(myMenu);
}

}
}
...全文
938 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerrygj 2011-05-10
  • 打赏
  • 举报
回复
是不匹配啊,我现在就是迷茫啊,item.getItemId()返回的怎么是2131099659啊
I_am_studying 2011-05-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jerrygj 的回复:]

05-10 01:47:09.916: INFO/System.out(1469): 2131099659
打印出的getitemid值
[/Quote]
if (item.getItemId() == 0) {
System.out.println("intreasting");
} else if (item.getItemId()==1) {
System.out.println("intreasting");
}
你的id值不匹配啊,所以没办法出发事件
happyfmy 2011-05-10
  • 打赏
  • 举报
回复
item.getItemId()返回的当然是item的id了
是不是id不匹配呀
jerrygj 2011-05-10
  • 打赏
  • 举报
回复
就是说用xml创建菜单,怎么判断里面的item,然后触发事件
jerrygj 2011-05-10
  • 打赏
  • 举报
回复
05-10 01:47:09.916: INFO/System.out(1469): 2131099659
打印出的getitemid值
jerrygj 2011-05-10
  • 打赏
  • 举报
回复
哈哈,搞的太弱智了,R.id.item_a就取到了 弄好了,谢谢
I_am_studying 2011-05-10
  • 打赏
  • 举报
回复
android 系统把你字符串格式的id转成整数型了
jerrygj 2011-05-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 i_am_studying 的回复:]

你把鼠标放在你R.java里item的id上面,应该就是这个2131099659,你试试
[/Quote]


你说的对,但是<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">

<item android:id="@+id/item_a"
android:icon="@drawable/gimp"
android:title="Gimp">
</item>

</menu>
这里我设置了啊,item android:id="@+id/item_a"
ihrthk 2011-05-10
  • 打赏
  • 举报
回复
打印出来呗。。。
I_am_studying 2011-05-10
  • 打赏
  • 举报
回复
你把鼠标放在你R.java里item的id上面,应该就是这个2131099659,你试试
I_am_studying 2011-05-10
  • 打赏
  • 举报
回复
因为你没给它设定id。。。这应该是系统自己定的吧

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧