想了解不带自动隐藏的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隐藏窗口)
- 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)
Ccmenu
-
基本结构
Ccmenu继承自cclayer,本质是一个容器。需要被addChild到父类中去。
CcmenuItem是菜单项,它有如下子类:
CcmenuItemFont;CcmenuItemImage;CcmenuItemLabel;CcmenuItemSprite;CcmenuItemToggle;
是真正的需要实例化的菜单项。需要addChild到Ccmenu对象中去。
示例:
CcmenuItem * item = CcmenuItemFont::create(“Start”); //这里的this表示的是调用者 Item->setTarget(this,menu_selector(MYMenu::menuCallBack)); Ccmenu * menu = Ccmenu::create(); menu->addChild(item); addChild(menu); |
- 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后面的参数,同上。
- 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.可以实现变化的菜单。
- 如何判断哪个菜单被点
打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; } |
- 案例说明:
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的实例源码
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); }
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; } }); } }
@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; } }); }
@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; }
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; } }); } }
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; } }); } }
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); } } }); } }
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; } }); }
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; } }); }
@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; } }); }
@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); }
@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; } }); }
@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; }
@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); }
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); } }
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); } }
@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); }
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); } } }
@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; }
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); }
@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); } }
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; } }); }
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; } }); }
@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; }
@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; }
@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; }
@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; }
@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; }
@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; }
@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); }
@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; } }); }
@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; }
@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); }
@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); }
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无法显示全部菜单项的解决办法![待续]
使用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方法
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 (.getChildren btn-pane) [new-puzzle-pane check-Box hint-btn check-btn solve-btn load-btn save-btn print-btn about-btn spacer])
关于不带自动隐藏的JavaFX MenuItem和javafx隐藏窗口的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于1.cocos2dx之Menu(CCMenuItemFont,CCMenuItemImage,CCMenuItemLabel,CCMenuItemSprite,CCMenuItemToggle)、android.view.MenuItem.OnMenuItemClickListener的实例源码、CCMenuItemSprite ---CCMenuItemImage::create无法显示全部菜单项的解决办法![待续]、Clojure和JavaFX 2 – 将多个arity参数传递给JavaFX方法的相关信息,请在本站寻找。
本文标签: