android-菜单设置自定义

时间:2012-04-26 05:06:40

标签: java android

我在android菜单中添加了设置选项。它在模拟器中测试时工作正常。但是当我尝试在设备中它不会改变..我能知道这是什么问题吗?我是否需要在androidmanifest.xml文件中更改任何内容 以下是我的代码:

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    menu.add(1,1,0,"Settings").setIcon(R.drawable.ic_tab_settings_grey);
    setMenuBackground();
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    switch(item.getItemId())
    {
    case 1:
        Intent in = new Intent(TransactionSummaryActivity.this, WelcomePage.class);
        startActivity(in);
        finish();
        return true;

    default:
        return true;
    }

}
protected void setMenuBackground(){  

           getLayoutInflater().setFactory( new Factory() {  
            @Override
            public View onCreateView(String name, Context context, AttributeSet attrs) {
                // TODO Auto-generated method stub

                 if ( name.equalsIgnoreCase( "com.android.internal.view.menu.IconMenuItemView" ) ) {  

                       try { // Ask our inflater to create the view  
                           LayoutInflater f = getLayoutInflater();  
                           final View view = f.createView( name, null, attrs );  
                           new Handler().post( new Runnable() {  
                               public void run () {  
                                   view.setBackgroundResource(R.drawable.menu_selector);  
                                  // view.setBackgroundColor(Color.parseColor("#257CB5"));

                                  ((TextView) view).setTextColor(Color.WHITE);

                               }  
                           } );  
                           return view;  
                       }  
                       catch (InflateException e) {}  
                       catch (ClassNotFoundException e) {}  
                   }  
                return null;
            }  
           });  
       }

1 个答案:

答案 0 :(得分:0)

我只是看到你的手机api级别是否低于应用程序设置的级别。我相信,如果它在模拟器上运行,但在您的设备上不起作用,我认为这不是编码问题。

删除手机上应用的所有痕迹。 “卸载”它。然后尝试再次运行应用程序,它应该可以工作。