Articles of android menu

自定义popup菜单

您好我必须创建一个PopUp菜单,我知道如何做到这一点。 这是我创建默认PopUp菜单的代码.. popup_menu.xml PopUpMenu_Activity.java findViewById(R.id.btn_click).setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { PopupMenu popupMenu = new PopupMenu(PopMenuActivity.this, view); popupMenu.setOnMenuItemClickListener(PopMenuActivity.this); popupMenu.inflate(R.menu.popup_menu); popupMenu.show(); } }); 和 public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.item1: Toast.makeText(this, “item1 clicked”, Toast.LENGTH_SHORT).show(); return true; case R.id.item2: Toast.makeText(this, “item2 clicked”, Toast.LENGTH_SHORT).show(); return true; case R.id.item3: Toast.makeText(this, “item3 clicked”, Toast.LENGTH_SHORT).show(); […]

拦截PopupWindow中的Android菜单按钮

我有一个不使用选项菜单的主要活动。 我需要实现此行为:1。按下Android菜单按钮时,会显示一个popup窗口2.再次按下Android菜单按钮时,popup窗口将被取消。 我知道如何通过覆盖主活动中的onKeyDown()来做#1但不知道如何做#2。 显示popup窗口时,不再触发主活动的onKeyDown()。 当主要活动打开popup窗口时,如何捕获Android菜单按钮? (在我的例子中,popup窗口是一个带有膨胀视图的PopupWindow)。 顺便说一下,我试图在popup窗口的主视图上设置一个关键监听器,但它没有被触发 mTopView.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { LogUtil.debug(“*** Key: %d”, keyCode); return false; } });

showAsAction =“always”在工具栏中被忽略

切换到工具栏后,菜单图标出现问题。 虽然我设置了一个菜单项android:showAsAction =“always”但它没有显示图标,我只能find它点击popup图标。 这是myActivity public class myActivity extends AppCompatActivity{ ……… public void onCreate(….){ …………. Toolbar toolbar = (Toolbar) findViewById(….); setSupportActionBar(toolbar); } ………… public boolean onCreateOptionsMenu(Menu menu{ getMenuInflater().inflate(R.menu.menu, menu); return super.onCreateOptionsMenu(menu); } …………. } menu.xml文件 设置和帮助图标都只在popup菜单中。 那么如何在工具栏上显示设置图标?

覆盖android上的物理菜单按钮

我希望我的Android设备上的菜单键打开一个对话框,而不是在我的应用程序运行时打开菜单。 我尝试将其编码到onCreateOptionsMenu(Menu menu)但它仅在我第一次按下菜单按钮时才有效。 我可以用其他方式吗?

如何在android溢出按钮上更改popup菜单的位置?

我只想在Gmail应用中实现与popup菜单相同的function,并固定在右上角的溢出按钮上。 为此,我使用与Android Androidpopup菜单的谷歌教程相同的代码,但对我来说,在行动栏的边缘上显示popup菜单不在那之下。 如果你注意到gmail溢出的pop菜单,你会看到popmenu发生在actionbar的边缘。 这是我用于popup菜单的xml: 以下是我的活动: public void showFontSetting(View view) { PopupMenu popup = new PopupMenu(this, view); MenuInflater inflater = popup.getMenuInflater(); inflater.inflate(R.menu.menu, popup.getMenu()); popup.show(); popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case R.id.item1: Toast.makeText(Index.this, “You Clicked : ” + item.getTitle(), Toast.LENGTH_SHORT).show(); break; case R.id.item2: break; […]

自定义主题ActionBar android(菜单不起作用)

我想自定义我的应用程序,我已经应用了一个主题,但选项菜单似乎不适用我的主题。 我希望我的文字颜色为白色,背景为黑色,突出显示/选中的菜单项为黄色。 这是我的theme.xml: @style/MyActionBar @style/MyActionBarTabText @color/application_color5 @style/MyActionBarTabs @drawable/icone_barratopo_selector @drawable/icone_barratopo_selector @drawable/icone_barratopo_selector <!– @drawable/selectable_background — @style/MyActionBar @style/MyActionBarTabText @color/application_color5 @style/MyActionBarTabs @drawable/icone_barratopo_selector @drawable/icone_barratopo_selector @drawable/icone_barratopo_selector @drawable/background_barratopo_superior @style/MyActionBarTitleText @drawable/background_barratopo_superior @style/MyActionBarTitleText @color/application_color2 @drawable/tab_text_selector @drawable/actionbar_tab_indicator @drawable/actionbar_tab_indicator 我的menu.xml: <!– –> 和我的selector.xml:

何时使用菜单项id调用findViewById以确保它不为null?

我正在给菜单充气,并试图通过以下方式查找其中一个菜单项的视图: @Override public boolean onCreateOptionsMenu(final Menu menu) { getMenuInflater().inflate(R.menu.main, menu); // will print `null` Log.i(“TAG”, String.valueOf(findViewById(R.id.action_hello))); return true; } 在结果中, null在Logcat中打印。 但是,如果我在调用findViewById之前添加一些延迟,它将返回正确的View对象: @Override public boolean onCreateOptionsMenu(final Menu menu) { getMenuInflater().inflate(R.menu.main, menu); new AsyncTask() { @Override protected Void doInBackground(final Void… voids) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } return null; } @Override […]

旋转时重复的ActionBar按钮

我试图find一个答案,但没有运气。 我有一个片段有一个名为’menu_roi_result_calc’的菜单项。 每次屏幕旋转时,都会创建一个新菜单项。 代码如下所示: @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_roi_result_calc, menu); return true; } 然而,在几次屏幕旋转之后,这就是我得到的: 我感觉这是因为每次旋转都会重新创建菜单项,因此每次旋转时都会添加一个新项目。 我如何让它停下来? 如何检查项目是否存在并阻止再次重新创建项目? 任何代码示例将不胜感激。

MENU中不允许元素项目

我正在尝试制作自定义选项菜单。 使用此代码后,我得到: 此处不允许使用元素项 码: 灵感来自: Android开发指南

如何在onCreateOptionsMenu中动态更改菜单

我有小问题,我想用动态菜单解决它: public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) { switch(Globals.editMode){ case Globals.MODE_NONE: getSupportMenuInflater().inflate(R.menu.imagehandlingmain_menu, menu); break; case Globals.MODE_MOVE: getSupportMenuInflater().inflate(R.menu.savecancel_menu, menu); break; case Globals.MODE_ROTATE: getSupportMenuInflater().inflate(R.menu.savecancel_menu, menu); break; case Globals.MODE_SCALE: getSupportMenuInflater().inflate(R.menu.savecancel_menu, menu); break; } //getSupportMenuInflater().inflate(R.menu.imagehandlingmain_menu, menu); return true; 我有两个菜单,菜单,您可以在其中选择工作模式,而在某些工作模式菜单中应该更改为“取消”和“保存”。 因此,您的想法是进入其中一种模式,然后如果您决定不保存您的工作,您可以取消它并返回到之前的状态。 现在,正如我假设onCreateOptionsMenu只被调用一次,那么在需要时我怎么能/应该“重新加载”整个菜单?