Articles of contextmenu

片段中未调用onContextItemSelected

我正在尝试使用ListView中的长按popup菜单。 我可以调用popup菜单,但是当我单击此popup菜单的选项时, onContextItemSelected()不起作用。 这是我的代码: package com.pa.homeautomationblank.fragments; import android.app.Fragment; import android.os.Bundle; import android.view.ContextMenu; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.Toast; import com.pa.homeautomationblank.R; import com.pa.homeautomationblank.listeners.OnItemCentraisLongClickListener; import com.pa.homeautomationblank.listeners.OnReconhecerCentraisClickListener; import com.pa.homeautomationblank.model.Central; import com.pa.homeautomationblank.model.dao.CentralDAO; public class CentraisFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, […]

在TextView中长按链接时显示上下文菜单

我有一个TextView ,其MovementMethod设置为LinkMovementMethod 。 添加到TextView文本是普通文本和URL的组合。 对于URL,我想在长时间按下URL以执行诸如复制地址之类的操作时提供上下文菜单。 我已经查看了LinkMovementMethod的源代码,但它似乎没有任何可以覆盖的长按相关代码。 有关如何实现这一目标的任何想法?

ContextMenu没有popup长按

长按单击列表视图中的列表项时,不会popup上下文菜单。 我扩展了基本适配器并使用视图持有者来实现带有textviews和图像按钮的自定义列表。 adapter = new MyClickableListAdapter(this, R.layout.timeline, mObjectList); list.setAdapter(adapter); registerForContextMenu(list); onCreateContextMenu的实现 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub super.onCreateContextMenu(menu, v, menuInfo); Log.d(TAG, “Entering Context Menu”); menu.setHeaderTitle(“Context Menu”); menu.add(Menu.NONE, DELETE_ID, Menu.NONE, “Delete”) .setIcon(R.drawable.icon); } listview的XML就在这里 我已经尝试了很多天了。 我认为不可能为这样的自定义列表视图注册Context-menu。 如果我错了,请纠正我(可能带有示例代码)。 现在我正在考虑向列表项添加一个按钮,并在单击它时显示一个菜单。 是否可以通过其他方式使用Dialogs? 任何帮助将非常感激..

从oncontextitemselected获取视图ID

我为上下文菜单注册了几个按钮 如何知道单击哪个按钮才能显示菜单? 下面是我将要使用的伪代码。 我需要做一些与点击哪个按钮相关的事情(我还有几个按钮要声明),我怎么知道上下文菜单是从哪个按钮点击激活的。 编辑:我想我没有说清楚,我想知道哪个按钮被点击以显示菜单。 不是单击哪个菜单项。 无论如何,我有一个解决方案,我很快就会加入。 谢谢 private static final int SEND_AS_TEXT = Menu.FIRST; private static final int SEND_AS_IMAGE = Menu.FIRST + 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); sendAllBtn = (Button)findViewById(R.id.sendAllBtn); sendAllBtn.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub registerForContextMenu(v); openContextMenu(v); } @Override public boolean onContextItemSelected(MenuItem […]

OnCreateContextMenu和ListView项目

我有一个带有几个项目的LisView。 为此我连接了OnItemClickListener(作为内部类),如下所示: lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View view, int position, long id) { Toast.makeText(ShoppingListApp02Activity.this, “List item selected:” + items.get(position).getId(), Toast.LENGTH_LONG).show(); } }); 很明显,选择一个entriy会显示该条目对象的元素,在本例中是所选Item对象的ID(不是列表ID,而是创建ArrayList项时设置的对象ID)。 这很好用,让我可以用选定的项目做任何我想做的事情。 现在我想要一个“长按”监听器,打开所选ListView项的上下文菜单。 我怎么做? 我已经能够将一个onCreateContextMenu监听器附加到ListView,但是我没有看到如何使用onItemClickListener获取ArrayList的元素? 这是我得到的: public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.add(0, v.getId(), 0, “Something”); menu.add(0, v.getId(), 0, “Something else”); } 由于OnCreateConextMenu采用与OnItemClickListener不同的参数,如何在OnItemClickListener中访问ArrayList的元素?

在WebView中的文本选择上创建自定义上下文菜单

我的应用程序中有一个WebView,我想在文本选择上显示自定义上下文菜单,如下所示: 我不想使用Android的Context ActionBar。 我想要一个非常小的上下文菜单代替动作。 我该怎么办?

Android:如何在另一个菜单xml中包含菜单xml?

简单的问题。 我有我的儿童用品菜单: 后来我想把它包含在这个菜单的子菜单中: 这里的问题有点回答 – 我不知道如何给子菜单充气。 我想你在onContextItemSelected方法中给它充气 – 但是inflate需要一个菜单​​对象,它不会传递给onContextItemSelected。

在Android 7中,ContextMenu的位置搞砸了

我有一个带有简单列表视图和上下文菜单的应用程序。 在Android 7之前,一切看起来都不错: 单击列表底部的项目时: 单击列表顶部的项目时: 但机智android 7 …… 单击列表底部的项目时: 单击列表顶部的项目时: 上下文菜单的位置是否有任何变化?

如何从Cursor获取数据到ContextMenu

我想获取光标的当前记录,而不仅仅是ID,以便我可以操作上下文菜单。 我在这里看到这个示例,向您展示如何获取ID: @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case DELETE_ID: AdapterView.AdapterContextMenuInfo info= (AdapterView.AdapterContextMenuInfo)item.getMenuInfo(); delete(info.id); return(true); } return(super.onOptionsItemSelected(item)); } 这很棒,因为它允许我获取所单击的上下文菜单的相应SQLite数据库ID,这将允许我编写一个函数来执行查找。 但我当然可以重用当前的光标? 我试过这样做: Cursor c = (Cursor) this.getListAdapter().getItem((int) info.id); String itemPriority = c.getInt(1); Log.v(TAG, “Current item:” + itemPriority); 但是光标线似乎只返回数据库的模式而不是我之后的记录。 请有人请说清楚。 编辑:感谢@azgolfer我find了解决方案。 我使用fillData()方法来填充适配器。 通常这是在没有variables的情况下声明的。 我不得不用一个字段variables重新定义这个方法。 在onContextItemSelected中使curstor适配器可见的代码的相关部分在这里: private void fillData() { Cursor itemsCursor = mDbHelper.fetchAllItemsFilter(mListId, mStatusFilter); […]

EditText的onCreateContextMenu()不适用于真实设备

刚尝试在真实设备上测试我的应用程序(HTC Desire Z with Android 2.2)。 并发现我的上下文菜单在EditText上根本不起作用。 否则上下文菜单有效:在ListView , ImageView等中。 在模拟器上一切正常…… 当我点击EditText时,它显示缩放框架之类的内容,然后显示exception(不是标准的Android)上下文菜单,其中显示:“选择文本”,“全选”。 它不显示我的菜单。 以下是截图: 点击之前 在点击期间 点击后 (只需普通选择文字,选择全部,粘贴) 但没有我的菜单像模拟器 – 看这里 这是我活动的源代码: public class MyActivity extends Activity { private static final String TAG=MyActivity.class.getName(); EditText editText; /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); editText=(EditText )findViewById(R.id.editText); […]