安卓:在单一的点击右键菜单 [英] Android: Context menu on single click
问题描述
我有延伸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屋!