GVKun编程网logo

不带自动隐藏的JavaFX MenuItem(javafx隐藏窗口)

26

想了解不带自动隐藏的JavaFXMenuItem的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于javafx隐藏窗口的相关问题,此外,我们还将为您介绍关于1.cocos2dx之Menu(CC

想了解不带自动隐藏的JavaFX MenuItem的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于javafx隐藏窗口的相关问题,此外,我们还将为您介绍关于1.cocos2dx之Menu(CCMenuItemFont,CCMenuItemImage,CCMenuItemLabel,CCMenuItemSprite,CCMenuItemToggle)、android.view.MenuItem.OnMenuItemClickListener的实例源码、CCMenuItemSprite ---CCMenuItemImage::create无法显示全部菜单项的解决办法![待续]、Clojure和JavaFX 2 – 将多个arity参数传递给JavaFX方法的新知识。

本文目录一览:

不带自动隐藏的JavaFX MenuItem(javafx隐藏窗口)

我想要一个不会在单击时自动隐藏的MenuItem(更具体地说是CheckMenuItem)。我知道CustomMenuItem具有此功能,但它应该是CheckMenuItem。

答案1

小编典典

在构造函数中使用CustomMenuItem,setHideOnClick和CheckBox。


编辑:

我只是注意到JavaFX 8u40中将其弄乱了。菜单项的文本颜色与背景颜色相同,因此看不到任何文本。

一个快速的解决方法是设置文本样式,例如

cb.setStyle("-fx-text-fill: -fx-text-base-color");

这是一个完整的示例:

public class Main extends Application {    @Override    public void start(Stage primaryStage) {        try {            VBox root = new VBox();             MenuBar menuBar = new MenuBar();            final Menu menu = new Menu( "Items");            for( int i=0; i < 10; i++) {                CheckBox cb = new CheckBox( "Item " + i);                // workaround: the color of the labels is wrong (white text on white background), we have to set it explicitly                cb.setStyle("-fx-text-fill: -fx-text-base-color");                CustomMenuItem cmi = new CustomMenuItem( cb);                cmi.setHideOnClick(false);                menu.getItems().add( cmi);            }            menu.getItems().add( new MenuItem( "This one doesn''t stay open"));            menuBar.getMenus().add( menu);            root.getChildren().add( menuBar);            Scene scene = new Scene(root,400,400);            primaryStage.setScene(scene);            primaryStage.show();        } catch(Exception e) {            e.printStackTrace();        }    }    public static void main(String[] args) {        launch(args);    }}

1.cocos2dx之Menu(CCMenuItemFont,CCMenuItemImage,CCMenuItemLabel,CCMenuItemSprite,CCMenuItemToggle)

1.cocos2dx之Menu(CCMenuItemFont,CCMenuItemImage,CCMenuItemLabel,CCMenuItemSprite,CCMenuItemToggle)



Ccmenu

  1. 基本结构

    Ccmenu继承自cclayer,本质是一个容器。需要被addChild到父类中去。

    CcmenuItem是菜单项,它有如下子类:

CcmenuItemFont;CcmenuItemImage;CcmenuItemLabel;CcmenuItemSprite;CcmenuItemToggle;

是真正的需要实例化的菜单项。需要addChildCcmenu对象中去。

示例:

CcmenuItem * item = CcmenuItemFont::create(“Start”);

//这里的this表示的是调用者

Item->setTarget(this,menu_selector(MYMenu::menuCallBack));

Ccmenu * menu = Ccmenu::create();

menu->addChild(item);

addChild(menu);

  1. CcmenuItem

A CcmenuItemFont

CcmenuItem * font = CcmenuItemFont::create(“Start”,this,menu_selector(MYMenu::menuCallBack));

Ccmenu * menu = Ccmenu::create();

menu->addChild(item);

addChild(menu);

第一个参数为标签要显示的文字,第二个参数表示回调函数的调用者,第三个参数表示回调函数。

关于回调

typedef void (CCObject::*SEL_MenuHandler)(CCObject *);

#define menu_selector(_SELECTOR)(SEL_MenuHandler)(&_SELECTOR)

B Ccmenu的坐标系统研究

fontItem->setPosition(ccp(winSize.width – 50,30));

menu->setPosition(CCPointZero);

cclog("fontItem = %g %g",fontItem->getPositionX(),fontItem->getPositionY());

cclog("menu = %g,%g,width %g,height = %g",menu->getPositionX(),menu->getPositionY(),

menu->getContentSize().width,menu->getContentSize().height);

CCcmenuItemImage

CcmenuItem *imageItem = CcmenuItemImage::create(“Closenormal.png”,”CloseSelected.png”);

imageItem->setTarget(this,menu_selector(Menu::menuCallBack));

1个参数为末点击是显示的图片,第二个参数为点击后显示的图片,最后参数可以放到setTarget中,意义同上。

D CcmenuItemLabel

cclabelBMFont *bm = cclabelBMFont::create("bmFontLabelMenu",

"fonts/bitmapFontTest.fnt");

CcmenuItem * labelItem = CcmenuItemLabel::create(bm,menu_selector(MYMenu::menuCallBack));

menu->addChild(labelItem);

第一个参数为一个label,最后两个参数同上。

E CcmenuItemSprite

CCSprite * normal = CCSprite::create(“gonormal.png”);

CCSprite * selected = CCSprite::create(“goselected.png”);

CcmenuItemSprite * spriteItem = CcmenuItemSprite::create(normal,selected,menu_selector(MYMenu::menuCallBack));

menu->addChild(spriteItem);

第一个参数和第二个参数为CCSprite后面的参数,同上。

  1. CcmenuItemToggle

CcmenuItem *t1 = CcmenuItemFont::create("ON");

CcmenuItem *t2 = CcmenuItemFont::create("OFF");

CcmenuItem *t3 = CcmenuItemFont::create("10%");

CcmenuItem *t4 = CcmenuItemFont::create("50%");

CcmenuItemToggle * toggle =

CcmenuItemToggle::createWithTarget(this,

menu_selector(T11Menu::menuCallBack),t1,t2,t3,t4,NULL);

menu->addChild(toggle);

第一个和第二个参数为回调函数调用者和回调函数,后面的参数为CcmenuItem.可以实现变化的菜单。

  1. 如何判断哪个菜单被点

Tag

CCArray * array = menu->getChildren();

CCObject * obj;

int i = 0;

CCARRAY_FOREACH(array,obj)

{

CcmenuItem * item = (CcmenuItem *)obj;

item->setTag(i + 1000);

i++;

}

Tag

CcmenuItem * item = (CcmenuItem *)obj;

Switch (item->getTag() - 1000) {

Case FONT1:

cclog(“CcmenuItemFont”);

break;

case FONT2:

break;

case IMAGE:

break;

case BM:

break;

case SPRITE:

break;

case TOGGLE:

{

int index = ((CcmenuItemToggle *)item)->getSelectedindex();

cclog(“index = %d”,index);

}

break;

}

  1. 案例说明:

MYMenu.h

#ifndef __MYMENU_H__

#define __MYMENU_H__

#include "cocos2d.h"

USING_NS_CC;

class MYMenu : public cclayer {

public:

CREATE_FUNC(MYMenu);

bool init();

static CCScene * scene();

void menuCallBack(CCObject * obj);

enum MENU

{

FONT1,FONT2,138); font-family:新宋体; font-size:9.5pt">IMAGE,138); font-family:新宋体; font-size:9.5pt">LABELLABEL,138); font-family:新宋体; font-size:9.5pt">SPRITE,138); font-family:新宋体; font-size:9.5pt">TOGGLE

};

Ccmenu * menu;

};

#endif

MYMenu.cpp

#include "MYMenu.h"

#include "AppMacros.h"

CCScene * MYMenu::scene()

{

scene = CCScene::create();

MYMenu * layer = create();

scene->addChild(layer);

return scene;

}

//五种菜单

#if 0

CcmenuItemFont;

CcmenuItemImage;

CcmenuItemLabel;

CcmenuItemSprite;

CcmenuItemToggle;

#endif

bool init()

{

cclayer::init();

//1步:创建一个菜单

menu = Ccmenu::create();

//2步:创建菜单项

//可以将下面的两行合并

CcmenuItem * fontItem = CcmenuItemFont::create("fontmenu");

fontItem->setTarget(this,138); font-family:新宋体; font-size:9.5pt">menu_selector(menuCallBack));

//显示menuItem在界面中的显示条项

cclog("first Item :x = %g y = %g",fontItem->getPositionX(),0); font-family:新宋体; font-size:9.5pt">getPositionY());

"first Item Anchor x = %g,y = %g",0); font-family:新宋体; font-size:9.5pt">getAnchorPoint().x,0); font-family:新宋体; font-size:9.5pt">getAnchorPoint().y);

"first Item ContentSize width %g hight %g",

fontItem->getContentSize().width,0); font-family:新宋体; font-size:9.5pt">getContentSize().height);

//创建第二个Menu条项

CcmenuItem * fontItem2 = "fontmenu2");

fontItem2->menuCallBack));

//设置Menu在界面中的显示状态

//menu->alignItemsverticallyWithPadding(40);

//显示menu在界面中的显示特征

"---------------------------------------------");

"Menu:x = %g,menu->"Menu Anchor x = %g y = %g",21); font-family:新宋体; font-size:9.5pt">"Menu ContentSize width %g high %g",

menu->getContentSize().height);

//2步:创建CcmenuItemImage类型的菜单项

CcmenuItem *imageItem = CcmenuItemImage::"Closenormal.png","CloseSelected.png");

imageItem->menuCallBack));

//2步:创建cclabelBMFont类型的菜单项

cclabelBMFont * bm = cclabelBMFont::"bmMenu",21); font-family:新宋体; font-size:9.5pt">"fonts/bitmapFontTest.fnt");

CcmenuItem *labelItem = CcmenuItemLabel::create(bm);

labelItem->menuCallBack));

//2步:创建CCSprite类型的菜单项

CCSprite *nor = CCSprite::"btn_go_1.png");

CCSprite *sel = "btn_go_0.png");

CcmenuItem * sprItem = CcmenuItemSprite::create(nor,sel);

sprItem->menuCallBack));

//2步:创建CcmenuItemToggle类型的菜单项

CcmenuItem * t1 = "ON");

CcmenuItem * t2 = "OFF");

CcmenuItem * t3 = "10%");

CcmenuItem * t4 = "%50%");

CcmenuItem * toggle = CcmenuItemToggle::createWithTarget(this,

menuCallBack),

t1,t2,t3,t4,138); font-family:新宋体; font-size:9.5pt">NULL);

//3步:将菜单项添加到菜单中去

menu->addChild(fontItem);

menu->addChild(fontItem2);

menu->addChild(imageItem);

menu->addChild(labelItem);

menu->addChild(sprItem);

menu->addChild(toggle);

this->addChild(menu);

//4步:设置菜单项的显示方式,让菜单项垂直显示

menu->alignItemsvertically();

//Ccmenu类有一个getChildren()方法可以得到菜单项

CCArray * array = menu->getChildren();

CCObject * obj;

int i = 0;

CCARRAY_FOREACH(array,obj)

{

CcmenuItem *item = (CcmenuItem *)obj;

item->setTag(i + 100);

i++;

}

/*

for (int i = 0; i < array->count();++i)

{

CcmenuItem *item = (CcmenuItem *)array->objectAtIndex(i);

item->setTag(i);

}

*/

return true;

}

//回调函数

void CCObject * obj)

{

CcmenuItem * item = (CcmenuItem *)obj;

switch (item->getTag() - 1000)

{

case FONT1:

"font menu call ");

break;

case FONT2:

break;

case IMAGE:

break;

case LABELLABEL:

break;

case TOGGLE:

int idx = ((CcmenuItemToggle *)item)->getSelectedindex();

"index = %d",idx);

break;

}

}

运行结果:

android.view.MenuItem.OnMenuItemClickListener的实例源码

android.view.MenuItem.OnMenuItemClickListener的实例源码

项目:appinventor-extensions    文件:ReplForm.java   
public void addLogcatButton(Menu menu) {
  if (!ReplApplication.isAcraActive()) { // If ACRA isn't active
    return;                              // we don't show the button
  }
  MenuItem showSettingsItem = menu.add(Menu.NONE,Menu.NONE,4,"Send Error Report").setonMenuItemClickListener(new OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
          String reportId = genReportId();
          ReplApplication.reportError(null,reportId);
          Notifier.oneButtonAlert(activeForm,"Your Report Id is: " + reportId +
            "<br />Use this ID when reporting this error.","Error Report Id","OK");
          return true;
        }
      });
  showSettingsItem.setIcon(android.R.drawable.stat_sys_warning);
}
项目:InsanityRadio-Android    文件:SocializeBaseView.java   
protected void createOptionsMenuItem(final Activity source,Menu menu) {
    if(Socialize.getSocialize().isAuthenticated()) {
        MenuItem add = menu.add(localizationService.getString(I18NConstants.SETTINGS_HEADER));

        if(drawables != null) {
            add.setIcon(drawables.getDrawable("ic_menu_preferences.png"));
        }

        add.setonMenuItemClickListener(new OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                if(!onSettingsMenuItemClick(item)) {
                    UserUtils.showUserSettingsForResult(source,CommentActivity.PROFILE_UPDATE);
                }
                return true;
            }
        });
    }
}
项目:InsanityRadio-Android    文件:CommentView.java   
@Override
protected void createOptionsMenuItem(Activity source,Menu menu) {
    super.createOptionsMenuItem(source,menu);

    MenuItem add2 = menu.add("Refresh");

    if(drawables != null) {
        add2.setIcon(drawables.getDrawable("ic_menu_refresh.png"));
    }

    add2.setonMenuItemClickListener(new OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            if(onCommentViewActionListener == null || !onCommentViewActionListener.onRefreshMenuItemClick(item)) {
                reload();
            }
            return true;
        }
    });
}
项目:OpenMobster    文件:SyncWebApp.java   
@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
    if(menu.size() > 0)
    {
        return true;
    }

    //Add the 'Back' Menu Item
    MenuItem back = menu.add(Menu.NONE,"Back");
    back.setonMenuItemClickListener(new OnMenuItemClickListener()
    {
        public boolean onMenuItemClick(MenuItem clickedItem)
        {
            //Load the New Ticket screen
            SyncWebApp.this.webView.loadUrl("file:///android_asset/html/api/api.html");
            return true;
        }
    });

    return true;
}
项目:OpenMobster    文件:LocalScreen.java   
public void postRender()
{                               
    //setup menu
    Menu menu = (Menu)NavigationContext.getInstance().
    getAttribute("options-menu");

    if(menu != null)
    {           
        MenuItem backItem = menu.add(0,"Back");
        backItem.setonMenuItemClickListener(new OnMenuItemClickListener()
        {
            public boolean onMenuItemClick(MenuItem clickedItem)
            {
                Services.getInstance().getNavigationContext().back();
                return true;
            }
        });
    }
}
项目:OpenMobster    文件:RemoteScreen.java   
public void postRender()
{                               
    //setup menu
    Menu menu = (Menu)NavigationContext.getInstance().
    getAttribute("options-menu");

    if(menu != null)
    {
        MenuItem backItem = menu.add(0,"Back");
        backItem.setonMenuItemClickListener(new OnMenuItemClickListener()
        {
            public boolean onMenuItemClick(MenuItem clickedItem)
            {
                Services.getInstance().getNavigationContext().back();
                return true;
            }
        });
    }
}
项目:OpenMobster    文件:HomeScreen.java   
private void setupMenu()
{
    Menu menu = (Menu)NavigationContext.getInstance().
    getAttribute("options-menu");

    if(menu != null)
    {
        MenuItem serverItem = menu.add(Menu.NONE,"Change Cloud IP Address");
        serverItem.setonMenuItemClickListener(new OnMenuItemClickListener()
        {
            public boolean onMenuItemClick(MenuItem clickedItem)
            {
                try
                {
                    HomeScreen.this.changeCloudServer();
                    return true;
                }
                catch(Exception e)
                {
                    throw new RuntimeException(e);
                }
            }
        });
    }
}
项目:faims-android    文件:ShowModuleMenuManager.java   
public void addOnActionToMenu(final ActionButtonCallback actionItem,final Menu menu,boolean showIcon) {
    menu.add(arch16n.substituteValue(actionItem.actionOnLabel()));
    if (showIcon) {
        menu.getItem(menu.size()-1).setIcon(R.drawable.toggle_on);
    }
    menu.getItem(menu.size()-1).setonMenuItemClickListener(new OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            try {
                actionItem.actionOn();
                updateActionBar(menu);
            } catch (Exception e) {
                showActionError(actionItem,e);
            }
            return false;
        }
    });
}
项目:faims-android    文件:ShowModuleMenuManager.java   
public void addOffActionToMenu(final ToggleActionButtonCallback actionItem,final Menu menu) {
    menu.add(arch16n.substituteValue(actionItem.actionOffLabel()));
    menu.getItem(menu.size()-1).setIcon(R.drawable.toggle_off);
    menu.getItem(menu.size()-1).setonMenuItemClickListener(new OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            try {
                actionItem.actionOff();
                updateActionBar(menu);
            } catch (Exception e) {
                showActionError(actionItem,e);
            }
            return false;
        }
    });
}
项目:DeviceConnect-Android    文件:AccesstokenListFragment.java   
@Override
public void onCreateOptionsMenu(final Menu menu,final MenuInflater inflater) {
    menu.clear();
    // ActionBarの全削除ボタンを追加
    final MenuItem menuItem = menu.add(R.string.delete_all);
    menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    menuItem.setonMenuItemClickListener(new OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(final MenuItem item) {
            if (item.getTitle().equals(menuItem.getTitle())) {
                deleteallTokenProc();
            }
            return true;
        }
    });
}
项目:CropOp    文件:NOtificationsFragment.java   
@Override
public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) {
    MenuItem temp = menu.add("Clear all notifications").setIcon(android.R.drawable.ic_menu_delete).setonMenuItemClickListener(new OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            final View view = getActivity().getLayoutInflater().inflate(R.layout.contacts_add,null);
            new AlertDialog.Builder(getActivity()).setTitle("Add peasant to collection").setView(view).setPositiveButton("Add",new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog,int which) {
                }
            }).setNegativeButton("Cancel",null).show();
            return true;
        }
    });
    if (VERSION.SDK_INT >= 11) temp.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
项目:ServeStream    文件:NowPlayingActivity.java   
@Override
 public void onCreateContextMenu(ContextMenu menu,View view,ContextMenuInfo menuInfo) {
     AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
     mSelectedPosition =  info.position;
     mTrackCursor.movetoPosition(mSelectedPosition);
     mCurrentTrackName = mTrackCursor.getString(mTrackCursor.getColumnIndexOrThrow(
             Media.MediaColumns.TITLE));

     menu.setHeaderTitle(mCurrentTrackName);

     android.view.MenuItem remove = menu.add(R.string.remove_from_playlist);
     remove.setonMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(android.view.MenuItem arg0) {
    removePlaylistItem(mSelectedPosition);
    return true;
}
     });
 }
项目:XiyouLibrary    文件:SearchActivity.java   
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    // getMenuInflater().inflate(R.menu.search,menu);
    menu.add(Menu.NONE,Menu.FirsT + 1,1,"扫描条形码")
            .setIcon(R.drawable.barcode)
            .setonMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    Intent openCameraIntent = new Intent(
                            SearchActivity.this,CaptureActivity.class);
                    startActivityForResult(openCameraIntent,0);
                    return false;
                }
            });
    return true;
}
项目:hellomap3d-android    文件:PackageManagerActivity.java   
@SuppressLint({ "InlinedApi","NewApi" })
   @Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuItem menuItem = menu.add("Map").setonMenuItemClickListener(new OnMenuItemClickListener(){
           @Override
           public boolean onMenuItemClick (MenuItem item){

               // Using static global variable to pass data. Avoid this in your app (memory leaks etc)!
               PackageManagerActivity.dataSource = new PackageManagerTileDataSource(PackageManagerActivity.this.packageManager);

               Intent myIntent = new Intent(PackageManagerActivity.this,PackagedMapActivity.class);
               PackageManagerActivity.this.startActivity(myIntent);

               return true;
           }
       });

    menuItem.setIcon(android.R.drawable.ic_dialog_map);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    }
    return super.onCreateOptionsMenu(menu);
}
项目:hellomap3d-android    文件:VectorMapSampleBaseActivity.java   
private void addLanguageMenuOption(final Menu menu,String text,final String value) {

        MenuItem menuItem = menu.add(text).setonMenuItemClickListener(new OnMenuItemClickListener(){
            @Override
            public boolean onMenuItemClick (MenuItem item){
                for (int i = 0; i < menu.size(); i++) {
                    MenuItem otherItem = menu.getItem(i);
                    if (otherItem == item) {
                        otherItem.setIcon(android.R.drawable.checkBox_on_background);
                    } else {
                        otherItem.setIcon(null);
                    }
                }
                vectorStyleLang = value;
                updateBaseLayer();
                return true;
            }
        });

        if (vectorStyleLang.equals(value)) {
            menuItem.setIcon(android.R.drawable.checkBox_on_background);
        }
    }
项目:hellomap3d-android    文件:VectorMapSampleBaseActivity.java   
private void addStyleMenuOption(final Menu menu,final String value) {
    MenuItem menuItem = menu.add(text).setonMenuItemClickListener(new OnMenuItemClickListener(){
        @Override
        public boolean onMenuItemClick (MenuItem item){
            for (int i = 0; i < menu.size(); i++) {
                MenuItem otherItem = menu.getItem(i);
                if (otherItem == item) {
                    otherItem.setIcon(android.R.drawable.checkBox_on_background);
                } else {
                    otherItem.setIcon(null);
                }
            }
            vectorStyleName = value;
            updateBaseLayer();
            return true;
        }
    });

    if (vectorStyleName.equals(value)) {
        menuItem.setIcon(android.R.drawable.checkBox_on_background);
    }
}
项目:smartedu    文件:FeedBack.java   
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    MenuItem sendItem = menu.add(0,"发送");
    sendItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    sendItem.setonMenuItemClickListener(new OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            initData();

            return false;
        }
    });
    return super.onCreateOptionsMenu(menu);

}
项目:MaterialPreferenceLibrary    文件:SettingsActivity.java   
private static void setonMenuItemClickListenerRecursive(Menu menu,OnMenuItemClickListener listener)
{
List<Menu> menus=new ArrayList<>(1);
menus.add(menu);
while(!menus.isEmpty())
  {
  final Menu currentMenu=menus.remove(0);
  for(int i=0;i<currentMenu.size();++i)
    {
    final MenuItem item=currentMenu.getItem(i);
    item.setonMenuItemClickListener(listener);
    final SubMenu subMenu=item.getSubMenu();
    if(subMenu!=null)
      menus.add(subMenu);
    }
  }
}
项目:amar-android-demo    文件:MainActivity.java   
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    menu.add("Reset").setonMenuItemClickListener(new OnMenuItemClickListener()
    {
        @Override
        public boolean onMenuItemClick(MenuItem item)
        {
            gridview.setAdapter(new ExamplePagedDragDropGridAdapter(MainActivity.this,gridview));
            gridview.notifyDataSetChanged();

            return true;
        }
    });

    return true;
}
项目:YiBo    文件:UserContextMenuListener.java   
private void analyzeUserMenu(final Adapter adapter,final User user,ContextMenu menu,final Context context) {
    menu.setHeaderTitle(R.string.menu_title_blog);
    int order = 0;

    MenuItem commentMenu = menu.add(0,order++,R.string.menu_group_member_user_profile);
    Intent commentIntent = new Intent(context,ProfileActivity.class);
    commentIntent.putExtra("USER",user);
    commentMenu.setIntent(commentIntent);

    MenuItem unfollowMenu = menu.add(0,2,R.string.menu_group_member_unfollow);
    unfollowMenu.setonMenuItemClickListener(new OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            CacheAdapter<User> cacheAdapter = (CacheAdapter<User>)AdapterUtil.getCacheAdapter(adapter);
            GroupMemberUnfollowTask task = new GroupMemberUnfollowTask(cacheAdapter,user);
            task.execute();
            return false;
        }
    });

    MenuItem messageMenu = menu.add(0,R.string.menu_group_member_message);
    Intent messageIntent = new Intent(context,EditDirectMessageActivity.class);
    messageIntent.putExtra("disPLAY_NAME",user.getdisplayName());
    messageMenu.setIntent(messageIntent);
}
项目:digitalocean-swimmer    文件:DomainDetailsDialogFragment.java   
@Override
public void onCreateContextMenu(ContextMenu menu,View v,ContextMenu.ContextMenuInfo menuInfo) {
    if (v.getId() == R.id.recordsListView) {
        AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
        record = new RecordService(getActivity()).findById(info.id);
        MenuInflater inflater = getActivity().getMenuInflater();
        inflater.inflate(R.menu.record_context,menu);

        OnMenuItemClickListener listener = new OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                onContextItemSelected(item);
                return true;
            }
        };

        for (int i = 0,n = menu.size(); i < n; i++)
            menu.getItem(i).setonMenuItemClickListener(listener);
    }
}
项目:hipstacaster    文件:HipstaActivity.java   
private void initSlideShowMenuItem(Menu menu) {
    MenuItem slideShowMenuItem = menu.findItem(R.id.action_slideshow);
       slideShowMenuItem.setonMenuItemClickListener(new OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            if(mSession != null && mSession.hasstarted() && photoSet != null && photoSet.size() > 0) {
                sendPhotoSet();
                Toast.makeText(HipstaActivity.this,"Starting slideshow on ChromeCast!",Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(HipstaActivity.this,"Please connect to cast device first.",Toast.LENGTH_SHORT).show();
            }
            return false;
        }
       });
}
项目:hipstacaster    文件:HipstaActivity.java   
private void initRefreshMenuItem(Menu menu) {
    MenuItem refreshMenuItem = menu.findItem(R.id.action_refresh);
       refreshMenuItem.setonMenuItemClickListener(new OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            if(gridView != null) {
                ((GridViewAdapter) gridView.getAdapter()).clear();
                gridView.setAlpha(0.2f);
                pageOffset = 0;

                new LoadImageListTask(HipstaActivity.this,pageOffset,IMAGES_PER_FETCH).execute(preferences.getString("tagsPref",DEFAULT_SEARCH_TAG));
            }
            return false;
        }
    });
}
项目:FunWeibo    文件:ActivityDetailWeibo.java   
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.  
    super.onCreateOptionsMenu(menu);  
    //添加菜单项  
    MenuItem add=menu.add(0,R.string.menu_checkin);
    //绑定到ActionBar    
    add.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    //绑定点击事件
    add.setonMenuItemClickListener(new OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            //创建新微博
            checkinWithCurrentPoi();
            return false;
        }
    });
    return true;
}
项目:FunWeibo    文件:ActivityDetailPoi.java   
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.  
    super.onCreateOptionsMenu(menu);  
    //添加菜单项  
    MenuItem add = menu.add(0,getString(R.string.menu_map));
    //绑定到ActionBar    
    add.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    //绑定点击事件
    add.setonMenuItemClickListener(new OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            if(mPoi != null) {
                BaiduMapActivity.openMapWithMarker(ActivityDetailPoi.this,mPoi.latitude,mPoi.longtitude,mPoi.title,mPoi.address);
            } else {
                SmartToast.showLongToast(ActivityDetailPoi.this,R.string.hint_location_invalid,false);
            }
            return false;
        }
    });
    return true; 
}
项目:FunWeibo    文件:ActivityComment.java   
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.  
    super.onCreateOptionsMenu(menu);  
    //添加菜单项  
    MenuItem add=menu.add(0,R.string.menu_send);
    //绑定到ActionBar    
    add.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    //绑定点击事件
    add.setonMenuItemClickListener(new OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            checkAndComment();
            return false;
        }
    });
    return true; 
}
项目:FunWeibo    文件:ActivityPopularPOIs.java   
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    //签到按钮  
    MenuItem add = menu.add(0,getString(R.string.menu_checkin));
    add.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    add.setonMenuItemClickListener(new OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            //拍照并创建新微博
            Intent it = new Intent(ActivityPopularPOIs.this,ActivityNewWeibo.class);
            it.putExtra(ActivityNewWeibo.INTENT_EXTRA_TAKE_PHOTO,true);
            startActivity(it);
            return false;
        }
    });

    //创建基类的按钮
    super.onCreateOptionsMenu(menu);

    return true; 
}
项目:FunWeibo    文件:ActivityNewWeibo.java   
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.  
    super.onCreateOptionsMenu(menu);  
    //添加菜单项  
    MenuItem add = menu.add(0,R.string.menu_send);
    //绑定到ActionBar    
    add.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    //绑定点击事件
    add.setonMenuItemClickListener(new OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            checkAndPost();
            return false;
        }
    });
    return true; 
}
项目:FunWeibo    文件:ImageLoadActivity.java   
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.  
    super.onCreateOptionsMenu(menu);  
    //添加菜单项  
    MenuItem add = menu.add(0,R.string.menu_save);
    //绑定到ActionBar    
    add.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    //绑定点击事件
    add.setonMenuItemClickListener(new OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            saveImage();
            return false;
        }
    });
    return true; 
}
项目:huaxingtan_android    文件:MusicPlayerActivity.java   
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main,menu);

    MenuItem settingItem = menu.findItem(R.id.action_settings);
    settingItem.setonMenuItemClickListener(new OnSettingClickedListener(this));

    MenuItem downloadItem = menu.findItem(R.id.action_download);
    downloadItem.setonMenuItemClickListener(new OnMenuItemClickListener(){
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            Intent intent = new Intent(MusicPlayerActivity.this,DownloadingActivity.class);
            startActivity(intent);
            return true;
        }
    });

    MenuItem playItem = menu.findItem(R.id.action_play);
    playItem.setVisible(false);

    return super.onCreateOptionsMenu(menu);
}
项目:servestream    文件:NowPlayingActivity.java   
@Override
 public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) {
     AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
     mSelectedPosition =  info.position;
     mTrackCursor.movetoPosition(mSelectedPosition);
     mCurrentTrackName = mTrackCursor.getString(mTrackCursor.getColumnIndexOrThrow(
             Media.MediaColumns.TITLE));

     menu.setHeaderTitle(mCurrentTrackName);

     android.view.MenuItem remove = menu.add(R.string.remove_from_playlist);
     remove.setonMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(android.view.MenuItem arg0) {
    removePlaylistItem(mSelectedPosition);
    return true;
}
     });
 }
项目:GitHub    文件:ColorsActivity.java   
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);

    MenuItem reset = menu.add(R.string.menu_colors_reset);
    reset.setAlphabeticShortcut('r');
    reset.setNumericShortcut('1');
    reset.setIcon(android.R.drawable.ic_menu_revert);
    reset.setonMenuItemClickListener(new OnMenuItemClickListener() {
        public boolean onMenuItemClick(MenuItem arg0) {
            // Reset each individual color to defaults.
            for (int i = 0; i < Colors.defaults.length; i++) {
                if (mColorList[i] != Colors.defaults[i]) {
                    mHostDb.setGlobalColor(i,Colors.defaults[i]);
                    mColorList[i] = Colors.defaults[i];
                }
            }
            mColorGrid.invalidateViews();

            // Reset the default FG/BG colors as well.
            mFgSpinner.setSelection(HostDatabase.DEFAULT_FG_COLOR);
            mBgSpinner.setSelection(HostDatabase.DEFAULT_BG_COLOR);
            mHostDb.setDefaultColorsForScheme(HostDatabase.DEFAULT_COLOR_SCHEME,HostDatabase.DEFAULT_FG_COLOR,HostDatabase.DEFAULT_BG_COLOR);

            return true;
        }
    });

    return true;
}
项目:chromium-for-android-56-debug-video    文件:RecentTabsRowAdapter.java   
@Override
void onCreateContextMenuForChild(final int childPosition,Activity activity) {
    if (isMoreButton(childPosition)) return;
    OnMenuItemClickListener listener = new OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            mRecentTabsManager.closeTab(getChild(childPosition));
            return true;
        }
    };
    menu.add(R.string.close_tab).setonMenuItemClickListener(listener);
}
项目:chromium-for-android-56-debug-video    文件:RecentTabsRowAdapter.java   
@Override
public void onCreateContextMenuForChild(int childPosition,Activity activity) {
    final ForeignSessionTab foreignSessionTab = getChild(childPosition);
    OnMenuItemClickListener listener = new OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            mRecentTabsManager.openForeignSessionTab(mForeignSession,foreignSessionTab,WindowOpendisposition.NEW_BACKGROUND_TAB);
            return true;
        }
    };
    menu.add(R.string.contextmenu_open_in_new_tab).setonMenuItemClickListener(listener);
}
项目:appinventor-extensions    文件:Form.java   
public void addExitButtonToMenu(Menu menu) {
  MenuItem stopApplicationItem = menu.add(Menu.NONE,Menu.FirsT,"Stop this application")
  .setonMenuItemClickListener(new OnMenuItemClickListener() {
    public boolean onMenuItemClick(MenuItem item) {
      showExitApplicationNotification();
      return true;
    }
  });
  stopApplicationItem.setIcon(android.R.drawable.ic_notification_clear_all);
}

CCMenuItemSprite ---CCMenuItemImage::create无法显示全部菜单项的解决办法![待续]

CCMenuItemSprite ---CCMenuItemImage::create无法显示全部菜单项的解决办法![待续]

CcmenuItemSprite —CcmenuItemImage::create无法显示全部菜单项的解决办法![待续]
使用CcmenuItemImage::create发现无法显示全菜单项,cocos2d-x2.2.6 有2个不能显示,2.1.4版本干脆都不显示。

解决办法用CcmenuItemSprite::create()方法.
//创建SpriteFrameCache CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(“mainscene1.plist”);

CCSprite* bg = CCSprite::createWithSpriteFrameName("mainbg.png");

//CcmenuItemSprite 方法
//创建Btn精灵图片
CCSprite* adventureBtnnormal = CCSprite::createWithSpriteFrameName(“btn_adventure_normal_CN.png”);
CCSprite* adventureBtnpressed = CCSprite::createWithSpriteFrameName(“btn_adventure_pressed_CN.png”);

//创建菜单项
CcmenuItemSprite* adventureBtn = CcmenuItemSprite::create(adventureBtnnormal,adventureBtnpressed,this,menu_selector(HelloWorld::selMenuCallBack));

//给菜单项 setTag 为selMenuCallBack函数使用
adventureBtn->setTag(MENU_ID_ADVENTURE_MODE);

//给菜单项定位置 bgSize 为 作为背景精灵的ContentSize
adventureBtn->setPosition(ccp(bgSize.width * 20 / 100,bgSize.height * 12 / 100.0));

//照此建出所有菜单项

//生成菜单
Ccmenu* welMenu = Ccmenu::create(adventureBtn,bossBtn,nestBtn,settingBtn,helpBtn,NULL);

//设置位置 welMenu->setPosition(CCPointZero); //添加到背景 bg->addChild(welMenu,20);

Clojure和JavaFX 2 – 将多个arity参数传递给JavaFX方法

Clojure和JavaFX 2 – 将多个arity参数传递给JavaFX方法

许多 JavaFx方法采用var args,例如Group,它在Java中声明为:
public Group(Node... children)

其他例如:

public KeyFrame(Duration time,keyvalue... values)

我发现…意味着我应该将java数组传递给方法,所以我一直在做这样的事情,

(-> timeline .getKeyFrames 
  (.addAll 
    (into-array [(KeyFrame. blabla) (KeyFrame. blabla)]))`

每次有一个var arg时,必须要做(into-array …)是很烦人的,当var arg是我实际传入的基类时,它会更烦人.例如

(Group. (into-array [(Circle. 100) (Rectangle. 100 100)]))

导致类型不匹配错误.相反,我必须这样做:

(Group. (into-array Node [(Circle. 100) (Rectangle. 100 100)]))

所以我做了这个功能:

(defn make-group [& items]
  (Group. (into-array Node items)))

哪个适用于群组,但不能解决一般问题.

那么有没有一种解决省略号/变量问题的好方法,所以我不必为每个vararg方法创建特殊函数?这个函数的要求是它需要你想要调用的方法(例如Group),固定的args,var args,并且在某种程度上,函数会知道如何找到var args中元素的公共基类.

谢谢

解决方法

您是否尝试将参数放在向量中?我没有尝试过你提到的所有用例,但是当我使用addAll()方法时,我只是将参数放入一个文字向量中,例如
(.addAll (.getChildren btn-pane) [new-puzzle-pane check-Box hint-btn
                                  check-btn solve-btn load-btn save-btn
                                  print-btn about-btn spacer])

关于不带自动隐藏的JavaFX MenuItemjavafx隐藏窗口的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于1.cocos2dx之Menu(CCMenuItemFont,CCMenuItemImage,CCMenuItemLabel,CCMenuItemSprite,CCMenuItemToggle)、android.view.MenuItem.OnMenuItemClickListener的实例源码、CCMenuItemSprite ---CCMenuItemImage::create无法显示全部菜单项的解决办法![待续]、Clojure和JavaFX 2 – 将多个arity参数传递给JavaFX方法的相关信息,请在本站寻找。

本文标签: