标签: android-contextmenu

单击按钮后Android打开上下文菜单

我想在单击按钮时打开上下文菜单,但是当我单击按钮时,我还必须知道哪个列表项是聚焦的.你知道怎么做吗?onclick方法中的代码应该是什么?

android listview android-contextmenu

20
推荐指数
2
解决办法
4万
查看次数

getMenuInflater()方法Android上下文菜单创建中的未定义问题

我试图在片段内创建一个上下文菜单项.但是我遇到了getMenuInflater()方法的问题.这是未定义的.我已经导入了所有必要的包.谁能指出我在这里做错了什么?

这是我的代码:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.view.MenuItem;

public class FeaturedFragment extends Fragment {
public FeaturedFragment() {
}
public static final String ARG_SECTION_NUMBER = "section_number";

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.featured_fragment,container,false);
    registerForContextMenu(view);
    return view;
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
{
   super.onCreateContextMenu(menu, v, menuInfo);
   MenuInflater inflater = getMenuInflater(); …
Run Code Online (Sandbox Code Playgroud)

android contextmenu android-menu android-contextmenu

20
推荐指数
1
解决办法
2万
查看次数

选择多个项目时,动态隐藏上下文操作栏(CAB)中的项目

我有一个listActivity,可以长按单击显示CAB.如果选择了多个项目,我想隐藏我的一个菜单项.

我会跟踪所选项目的数量onItemCheckedStateChanged().但是,我无法访问菜单以从此功能中删除该项目.请参阅下面的代码中的注释,以了解我正在尝试的内容.我觉得我缺少一些简单的核心理解......下面的代码是从我的onCreate()函数中调用的.

private void setupActionBarContext() {
    ListView listView = getListView();
    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
    listView.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {

        private int selCount = 0;
        ArrayList<Long> idList = new ArrayList<Long>();

        @Override
        public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
            if (checked) {
                selCount++;
                idList.add(id);
            } else {
                selCount--;
                idList.remove(id);
            }
            mode.setTitle(selCount + " selected");

            // I WOULD LIKE TO HIDE ITEM ON MENU IF 'selCount' IS > 1
            // For example something like this...

            //                if (selCount > 1) …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar android-contextmenu

17
推荐指数
1
解决办法
5493
查看次数

使用ListView项内的按钮触发PopupMenu

菜单类型

首先让我概述一下Contextual Menus和Popup Menus之间的区别(取自这里):

  • PopupMenu是一个锚定到View 的模式菜单

  • 上下文菜单[我特别谈论浮动上下文菜单]提供了影响UI中特定项目或上下文框架的操作.您可以为任何视图提供上下文菜单,但它们通常用于ListView,GridView或其他视图集合中的项目,用户可以在其中对每个项目执行直接操作.

作为指导,文档区分了它们的用途: - PopupMenu:"为特定内容相关的操作提供溢出式菜单(例如Gmail的电子邮件标题......" - ContextualMenu:"对于影响所选内容的操作... "

我正在追寻PopupMenu的视觉外观和互动.

我的设置(和目标)

我有一个ListView,其中每个项目右侧都有一个按钮.

--------------------
| Item 1        [ ]|
--------------------
--------------------
| Item ...      [ ]|
--------------------
--------------------
| Item n        [ ]|
--------------------
Run Code Online (Sandbox Code Playgroud)

同时保留onItemClick每个ListItem,我想利用按钮触发一个PopupMenu.

其中的操作PopupMenu列在my_menu.xml,因此菜单的每个实例之间的唯一区别是它被单击的项目.

我试过的

根据这篇文章,我已经尝试覆盖getView()ListAdapterOnClickListener每个按钮添加一个按钮.结果不一致; 并非所有的点击都在注册(可能是由于回收 - 我还没有尝试过这个修复)但总的来说这种方法看起来很麻烦,考虑到为列表视图指定上下文菜单的简易性.

我还尝试添加一个上下文菜单,这很简单,只有当列表项被长按时才触发.

getView()方法是可行的方法还是更简单的方法?

在我的列表视图中,我为每个项目设置了一个迷你溢出按钮,类似于播放音乐的播放列表中的每个曲目.当您单击溢出按钮时,它们会为每个项目显示PopupMenu.长按什么都不做.

我想那样但不确定怎么样?菜单页面仅详细说明了如何为各个视图启用弹出菜单. …

android listview android-contextmenu

14
推荐指数
1
解决办法
7742
查看次数

如何判断输入法选择器是打开还是关闭?

我的应用程序打开输入法选择器(您选择键盘的菜单)InputMethodManager.showInputMethodPicker().我的应用程序实际上并没有创建选择器(它是由InputMethodManager创建的),但我知道它是a ContextMenu并且它的id是R.id.switchInputMethod.

在此输入图像描述

选择器是多步骤向导的一部分,因此我需要知道选择器何时关闭,以便我的应用程序可以继续执行下一步.现在我正在检查后台线程中是否更改了默认键盘,但如果用户选择相同的键盘或按下则无效.

所以我需要一种方法来判断选择器何时关闭(或者其他一些聪明的方式来知道何时继续).

提前致谢...

android android-input-method android-contextmenu

11
推荐指数
2
解决办法
3300
查看次数

在DialogFragment中不会调用onContextItemSelected

我有一个显示项目列表的对话框,我需要能够编辑/删除此列表中的项目,因此我将上下文菜单放入其中,因此当用户长按项目时,他们可以选择他们想要做的事情(编辑或删除项目).

问题是onContextItemSelected当选择上下文菜单中的项时永远不会被调用.

我查看是否可能创建对话框片段的活动正在获得回调,但这不是为什么它没有被调用?你不能在对话框中做一个上下文菜单吗?

public class TypesDialogList extends DialogFragment implements LoaderManager.LoaderCallbacks<Cursor>,OnItemClickListener,OnCreateContextMenuListener{

ListView lv;
SimpleCursorAdapter mAdapter;
private int EDIT_TYPE = 1;
private int DELETE_TYPE = 2;
OnEditType mType;


public Dialog onCreateDialog(Bundle state){
    final View v = getActivity().getLayoutInflater().inflate(R.layout.layer_dialog_layout, null, false);
    lv = (ListView)v.findViewById(R.id.listView1);
    lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    lv.setOnItemClickListener(this);
    lv.setOnCreateContextMenuListener(this);
    return new AlertDialog.Builder(getActivity()).setView(v).setPositiveButton("Add Type", new OnClickListener(){

        public void onClick(DialogInterface dialog, int which) {

        }

    }).setTitle("Type's").create();
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo){
    super.onCreateContextMenu(menu, v, menuInfo);
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
    long id …
Run Code Online (Sandbox Code Playgroud)

android android-dialogfragment android-contextmenu

11
推荐指数
1
解决办法
2301
查看次数

片段中的上下文动作模式 - 如果没有聚焦则关闭?

我在嵌套的fragement中实现了一个上下文动作模式栏.此片段是视图分页器的一部分,视图分页器也是片段和导航抽屉的一部分.

我的问题:如果片段不再集中,我想关闭上下文操作模式栏.因此,如果我在视图寻呼机中滑动,则应关闭操作模式栏.但是如果我使用onPause()嵌套片段的方法,则不直接调用该方法.通常它等到我向前滑了两三次......这是一些照片:

在此输入图像描述

在此输入图像描述

在第二张图片中,您可以看到操作模式栏仍然存在.所以我的问题是:我应该在哪种方法中调用我的actionModeBar.finish()方法,如果我离开片段,直接关闭动作模式栏?

也许片段的代码可以帮助你:

public class EditorFragment extends Fragment {

  private static final String KEY_POSITION="position";
  ListView listView;
  private boolean isMultipleList = false;
  private ActionMode acMode;
  private int counterChecked = 0;

  private ActionMode.Callback modeCallBack = new ActionMode.Callback() {

    public boolean onPrepareActionMode(ActionMode mode, Menu menu){
           return false;
       }

      public void onDestroyActionMode(ActionMode mode) {
          listView.clearChoices();
            for (int i = 0; i < listView.getChildCount(); i++)
                listView.setItemChecked(i, false);
                listView.post(new Runnable() {
                    @Override
                    public void run() {
                        listView.setChoiceMode(ListView.CHOICE_MODE_NONE);
                    }
                });
          isMultipleList = …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager android-contextmenu android-actionmode

8
推荐指数
2
解决办法
1万
查看次数

自定义上下文菜单,如pinterest菜单

每当GridView按下项目时,我一直在寻找类似Pinterest菜单的东西.我知道这个问题太广泛了.但是,对问题的小罢工将提供实现这些目标的正确方法.

阙:

如何在GridView项目上实现自定义上下文菜单,如Contacts +或Pinterest Context菜单?

Pinterest上下文菜单 联系人+上下文菜单

尝试:

ArcMenu:但它们取代了Slider Menu或弹出菜单以用于整个应用程序.我想要可以为GridView项创建onFly的菜单.

卫星菜单:与ArcMenu相同,替换滑块菜单或弹出菜单以用于整个应用程序.

请赐教我实现这些行为.

android android-gridview android-contextmenu

8
推荐指数
1
解决办法
2413
查看次数

如何使用listview适配器中的单击按钮打开菜单上下文Android?

如何使用listview适配器中的单击按钮打开菜单上下文Android?

我尝试使用我的代码,但没有显示菜单上下文,

 public View getView(int position, View convertView, ViewGroup parent) {
      vi=convertView;
    if(convertView==null)
        vi = inflater.inflate(R.layout.tulisan_komentar_list_item,parent, false);
    LinearLayout content_favorite= (LinearLayout)vi.findViewById(R.id.content_favorite);
    final TextView date_komentar = (TextView)vi.findViewById(R.id.date_komentar); // artist name
    final TextView isi_komentar = (TextView)vi.findViewById(R.id.isi_komentar); // duration
    final TextView nama_komentar = (TextView)vi.findViewById(R.id.nama_komentar); // duration
    final TextView id_tulisan_komentar = (TextView)vi.findViewById(R.id.id_tulisan_komentar); // duration
    final ImageButton act_komentar = (ImageButton)vi.findViewById(R.id.act_komentar);
    ImageView thumb_image=(ImageView)vi.findViewById(R.id.avatar_komentar); // thumb image

    HashMap<String, String> tulisan = new HashMap<String, String>();
    tulisan = data.get(position);

    // Setting all values in listview
    date_komentar.setText(tulisan.get(ContentCommentActivity.TAG_DATE_KOMENTAR));
    isi_komentar.setText(tulisan.get(ContentCommentActivity.TAG_ISI_KOMENTAR));
    nama_komentar.setText(tulisan.get(ContentCommentActivity.TAG_NAMA_KOMENTAR));
    id_tulisan_komentar.setText(tulisan.get(ContentCommentActivity.TAG_ID_TULISAN_KOMENTAR)); …
Run Code Online (Sandbox Code Playgroud)

android listview adapter android-contextmenu

7
推荐指数
1
解决办法
3万
查看次数

如何使用ListVIew中的MultiChoiceModeListener使用和不支持?

我想多选上下文菜单添加到listview与支持库22.1.1使用AppCompatActivityToolbar

没有支持库我可以使用 AbsListView.MultiChoiceModeListener

使用支持库,作为参数MultiChoiceModeListener接受的支持版本没有等效存在android.support.v7.view.ActionMode.

我该怎么做才能让它与支持库一起工作?

android android-appcompat android-listview action-menu android-contextmenu

7
推荐指数
1
解决办法
1056
查看次数