安卓:在单一的点击右键菜单 [英] Android: Context menu on single click

查看:219
本文介绍了安卓:在单一的点击右键菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有延伸ListActivity的意图。在我的的onCreate 方法具有填充列表适配器我使用后的 registerForContextMenu(getListView()); 来注册一个上下文菜单。

I have an Intent that extends a ListActivity. In my onCreate method after having populated the list adapter I use registerForContextMenu(getListView()); to register for a context menu.

现在,它正在和上下文菜单中有其原有的功能,该功能;当我点击并按住右键菜单中打开一个项目。

Now it is working and the context menu has its original function which is; once I click and hold down on an item the context menu opens.

我可以打开在一个单一的点击上下文菜单(无需按住就行了)?

Can I open the context menu on a single click (without having to hold down on the list)?

所有帮助AP preciated。

All help is appreciated.

推荐答案

呼叫 activity.openContextMenu(L) onitem点击事件,打开文本菜单上单击一下鼠标,onLongClick叫 activity.closeContextMenu()

call activity.openContextMenu(l) onitem click event to open contextmenu on single click and onLongClick call activity.closeContextMenu()

import android.app.Activity;
import android.app.ListActivity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MyListView extends ListActivity implements OnItemLongClickListener {
    /** Called when the activity is first created. */
    Activity activity = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        activity = this;


        ArrayAdapter arrayAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, PENS);
        setListAdapter(arrayAdapter);

        getListView().setTextFilterEnabled(true);
        ListView lv = getListView();
        this.registerForContextMenu(lv);

        lv.setOnItemLongClickListener(this);


    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        // TODO Auto-generated method stub

        super.onConfigurationChanged(newConfig);
        System.out.println("...11configuration is changed...");
    }

    static final String[] PENS = new String[]{
        "MONT Blanc",
        "Gucci",
        "Parker",
        "Sailor",
        "Porsche Design",
        "item1",
        "item2",
        "item3",
        "item4",
        "item5",
        "item6",
        "item7",
        "item8",
        "item9",
        "item10",
        "item11"



    };



    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);

        activity.openContextMenu(l);
        System.out.println("...context is called");

    }




    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        // TODO Auto-generated method stub
        System.out.println("...on create context menu...");
        super.onCreateContextMenu(menu, v, menuInfo);
    }

    public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
        System.out.println("...on long click close context menu...");
        activity.closeContextMenu();
        // TODO Auto-generated method stub

        return false;
    }

这篇关于安卓:在单一的点击右键菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆