以上就是给各位分享MVVM下ContextMenu的命令绑定,其中也会对mvvm如何实现绑定进行解释,同时本文还将给你拓展android–onCreateContextMenu使用ContextMen
以上就是给各位分享MVVM 下 ContextMenu的命令绑定,其中也会对mvvm如何实现绑定进行解释,同时本文还将给你拓展android – onCreateContextMenu使用ContextMenuInfo的null值调用、android – 像ContextMenu一样获取PopupMenu的上下文、Android 的选项菜单OptionsMenu和上下文菜单ContextMenu的使用案例、android.view.ContextMenu.ContextMenuInfo的实例源码等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- MVVM 下 ContextMenu的命令绑定(mvvm如何实现绑定)
- android – onCreateContextMenu使用ContextMenuInfo的null值调用
- android – 像ContextMenu一样获取PopupMenu的上下文
- Android 的选项菜单OptionsMenu和上下文菜单ContextMenu的使用案例
- android.view.ContextMenu.ContextMenuInfo的实例源码
MVVM 下 ContextMenu的命令绑定(mvvm如何实现绑定)
由于ContextMenu不继承父级的DataContext,所以如果要绑定父级的DataContext,直接DataContext=“{Binding}”是行不通的。因此可通过以下两个方式解决绑定的问题。
1、使用资源的方式
1 <Button Content="Test" Command="{Binding TestCommand}"> 2 <Button.Resources> 3 <vm:Threeviewmodel x:Key="Three"/> 4 </Button.Resources> 5 <Button.ContextMenu> 6 <ContextMenu> 7 <MenuItem Header="测试" Command="{Binding TestCommand,Source={StaticResource Three}}"/> 8 </ContextMenu> 9 </Button.ContextMenu> 10 </Button> 11
2、利用ContextMenu的PlacementTarget属性
<Button Content="Test" Command="{Binding TestCommand}"> <Button.ContextMenu> <ContextMenu> <MenuItem Header="测试" Command="{Binding PlacementTarget.DataContext.TestCommand,RelativeSource={RelativeSource AncestorType=ContextMenu} }"/> </ContextMenu> </Button.ContextMenu> </Button>
android – onCreateContextMenu使用ContextMenuInfo的null值调用
我正在尝试使用ContextMenu.
我已经使用SimpleCursorAdapter为一个简单的ListActivity成功完成了这个.
接下来我想用CursorAdapter替换SimpleCursorAdapter但仍然保留ContextMenu行为,所以我添加了两个强制覆盖函数bindView和newView
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = mLayoutInflater.inflate(R.layout.check_row, parent, false);
registerForContextMenu(view);
return view;
}
请注意registerForContextMenu,它替换了ListActivity的onCreate方法中的registerForContextMenu(getListView()).我发现有必要调用onCreateContextMenu(…)
所有这些都可行(使用预期的小部件创建的行,对它们的回调等工作等).除了提供给onCreateContextMenu(…)的ContextMenuInfo参数现在为null之外的所有内容 – 停止我访问rowId.
还有其他技巧要做 – 也许是在CursorAdapter的bindView(…)方法中?
解决方法:
我正在回答这个问题 – 但我会指出’commonsware.com’提供了线索和方向,见上文.
问题
– 在行布局中使用CheckBox会影响上下文菜单的使用
– 我相信CheckedTextView是用于多选的,它不适合初始化已检查状态.
我采用的解决方案如下
1.使用CheckedTextView
2.从CursorAdapter扩展到bindView(…)期间初始化检查状态
注意:这必须管理显示正确的图标
3.在onListItemClick(…)中管理CheckedTextView的状态并将其记录在dBase中,不要忘记更新光标.
android – 像ContextMenu一样获取PopupMenu的上下文
group_row.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/GroupName"android:paddingLeft="40dp" android:textSize="18sp" > </TextView> <ImageView android:id="@+id/Menu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginTop="10dp" android:contentDescription="@string/default_content_description_text" android:src="@drawable/ic_menu_moreoverflow_normal_holo_light" > </ImageView> </RelativeLayout>
当您单击TextView时,它将展开或折叠,具体取决于当前是否显示子行.我已将OnClickListener附加到组行中的ImageView.单击此ImageView时,我启动一个PopupMenu,如下图所示:
显示PopupMenu并单击其中一个操作后,我想对该组的所有子项执行操作.问题是我无法确定单击ImageView的行.
我想出如何将动作应用于所有孩子的唯一方法是使用ContextMenu,如下图所示:
我想避免使用ContextMenu,因为组行上的LongClick可能不明显,用户无法确定它会对子行执行某些操作.我认为更明显的设计是将PopupMenu锚定到ImageView(在我的例子中是菜单图标)并将操作应用于该组的子行.如何使用PopupMenu获得此功能?
解决方法
Android 的选项菜单OptionsMenu和上下文菜单ContextMenu的使用案例
1、选项菜单OptionsMenu和上下文菜单ContextMenu 效果如下:
2、MainActivity
package com.example.aidldemo;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class Main3Activity extends AppCompatActivity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
tv = findViewById(R.id.textView2);
registerForContextMenu(tv);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.action_bar_menu,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.search:
Toast.makeText(this,"search",Toast.LENGTH_SHORT).show();
break;
case R.id.msg:
// Toast.makeText(this,"msg",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
break;
case R.id.setting:
Toast.makeText(this,"设置",Toast.LENGTH_SHORT).show();
break;
case R.id.about :
Toast.makeText(this,"关于",Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.context_menu, menu);
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.copy:
Toast.makeText(this,"copy",Toast.LENGTH_SHORT).show();
break;
case R.id.collect :
Toast.makeText(this,"collect",Toast.LENGTH_SHORT).show();
break;
case R.id.report :
Toast.makeText(this,"report",Toast.LENGTH_SHORT).show();
break;
}
return super.onContextItemSelected(item);
}
}
3、在res目录下的menu目录下创建action_bar_menu.xml选项菜单和context_menu.xml上下文菜单:
选项菜单 action_bar_menu.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/search"
android:icon="@android:drawable/ic_menu_search"
android:title="搜索"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always" />
<item
android:id="@+id/msg"
android:actionLayout="@layout/fragment_list"
android:icon="@android:drawable/ic_menu_sort_by_size"
android:title="搜索"
app:showAsAction="always" />
<item
android:id="@+id/setting"
android:icon="@drawable/ic_looks_one"
android:title="设置" />
<item
android:id="@+id/about"
android:icon="@drawable/ic_looks_two"
android:title="关于" />
</menu>
上下文菜单 context_menu.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/copy"
android:title="复制" />
<item
android:id="@+id/collect"
android:title="收藏" />
<item
android:id="@+id/report"
android:title="举报" />
</menu>
3、activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Main3Activity">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Context Menu"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
4、清单文件 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.aidldemo">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Main3Activity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity">
<meta-data android:name="android.support.PARENT_ACTIVITY"
android:value=".Main3Activity"></meta-data>
</activity>
</application>
</manifest>
android.view.ContextMenu.ContextMenuInfo的实例源码
/** * Creates context menu for certain actions on a specific item. */ @Override public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo) { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; if (v instanceof ListView) { ListView listView = (ListView) v; Object item = listView.getAdapter().getItem(info.position); if (item instanceof DIDLObject) { selectedDIDLObject = (DIDLObject) item; } } menu.setHeaderTitle(v.getContext().getString( R.string.browse_context_title)); ArrayList<String> menuItems = new ArrayList<String>(); menuItems.add(v.getContext().getString(R.string.browse_context_play_all)); menuItems.add(v.getContext().getString(R.string.browse_context_play)); //menuItems.add(v.getContext().getString( R.string.browse_context_add_to_playplist)); menuItems.add(v.getContext() .getString(R.string.browse_context_download)); for (int i = 0; i < menuItems.size(); i++) { menu.add(Menu.NONE,i,menuItems.get(i)); } }
@Override @SuppressWarnings("unchecked") public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { AdapterView.AdapterContextMenuInfo info; try { info = (AdapterView.AdapterContextMenuInfo) menuInfo; } catch (ClassCastException e) { Log.e(THIS_FILE,"bad menuInfo",e); return; } HashMap<String,Object> codec = (HashMap<String,Object>) mAdapter.getItem(info.position); if (codec == null) { // If for some reason the requested item isn't available,do nothing return; } boolean isdisabled = ((Short)codec.get(CODEC_PRIORITY) == 0); menu.add(0,MENU_ITEM_ACTIVATE,isdisabled ? R.string.activate : R.string.deactivate); }
/** * Retrieve sip account from a given context menu info pressed * @param cmi The context menu info to retrieve infos from * @return corresponding sip profile if everything goes well,null if not able to retrieve profile */ private SipProfile profileFromContextMenuInfo(ContextMenuInfo cmi) { AdapterView.AdapterContextMenuInfo info; try { info = (AdapterView.AdapterContextMenuInfo) cmi; } catch (ClassCastException e) { Log.e(THIS_FILE,e); return null; } Cursor c = (Cursor) getlistadapter().getItem(info.position - getListView().getHeaderViewsCount()); if (c == null) { // For some reason the requested item isn't available,do nothing return null; } return new SipProfile(c); }
@Override public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu,v,menuInfo); final SipProfile account = profileFromContextMenuInfo(menuInfo); if(account == null) { return; } WizardInfo wizardInfos = WizardUtils.getWizardClass(account.wizard); // Setup the menu header menu.setHeaderTitle(account.display_name); if(wizardInfos != null) { menu.setHeaderIcon(wizardInfos.icon); } menu.add(0,account.active ? R.string.deactivate_account : R.string.activate_account); menu.add(0,MENU_ITEM_MODIFY,R.string.modify_account); menu.add(0,MENU_ITEM_DELETE,R.string.delete_account); menu.add(0,MENU_ITEM_WIZARD,R.string.choose_wizard); }
@Override public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { // Would prefer to have this context menu view managed internal to RecentTabsGroupView // Unfortunately,setting either onCreateContextMenuListener or onLongClickListener // disables the native onClick (expand/collapse) behavIoUr of the group view. ExpandableListView.ExpandableListContextMenuInfo info = (ExpandableListView.ExpandableListContextMenuInfo) menuInfo; int type = ExpandableListView.getPackedPositionType(info.packedPosition); int groupPosition = ExpandableListView.getPackedPositionGroup(info.packedPosition); if (type == ExpandableListView.PACKED_POSITION_TYPE_GROUP) { mAdapter.getGroup(groupPosition).onCreateContextMenuForGroup(menu,mActivity); } else if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) { int childPosition = ExpandableListView.getPackedPositionChild(info.packedPosition); mAdapter.getGroup(groupPosition).onCreateContextMenuForChild(childPosition,menu,mActivity); } }
@Override public void onCreateContextMenu(ContextMenu menu,menuInfo); AdapterView.AdapterContextMenuInfo mi = (AdapterView.AdapterContextMenuInfo)menuInfo; String headerTitle = getContextMenuHeaderTitle(mi.position); if (headerTitle != null) { menu.setHeaderTitle(headerTitle); } List<MenuItemInfo> menus = createContextMenus(mi.id); int i = 0; for (MenuItemInfo m : menus) { if (m.enabled) { menu.add(0,m.menuId,i++,m.titleId); } } }
@Override ContextMenuInfo createContextMenuInfo( View view,int flatListPosition,long id ) { if( isHeaderOrFooterPosition( flatListPosition ) ) { // Return normal info for header/footer view context menus return new AdapterContextMenuInfo( view,flatListPosition,id ); } final int adjustedPosition = getFlatPositionForConnector( flatListPosition ); ExpandableHListConnector.PositionMetadata pm = mConnector.getUnflattenedPos( adjustedPosition ); ExpandableHListPosition pos = pm.position; id = getChildOrGroupId( pos ); long packedPosition = pos.getPackedPosition(); pm.recycle(); return new ExpandableListContextMenuInfo( view,packedPosition,id ); }
@Override public void onCreateContextMenu(ContextMenu menu,View view,view,menuInfo); // Show the name of the file in the header AdapterContextMenuInfo adapterMenuInfo = (AdapterContextMenuInfo)menuInfo; int position = adapterMenuInfo.position; mActivityFileCursor.movetoPosition(position); String path = mActivityFileCursor.getString(mDataIndex); MetaFile file = MetaFile.from(path); menu.setHeaderTitle(file.getName()); // Add the context menu items menu.add(0,R.string.info,R.string.info); // Save the path,we will need it when an entry of the menu is selected mContextMenuPath = path; }
@Override public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { if (v.getId() != R.id.accounts_list) { return; } AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; Account account = (Account) adapter.getItem(info.position); menu.setHeaderTitle(account.toString()); String[] menuItems = getResources().getStringArray(R.array.account_actions); for (int i = 0; i < menuItems.length; i++) { menu.add(Menu.NONE,menuItems[i]); } }
public void onCreateContextMenu(ContextMenu menu,menuInfo); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.volume_list_context,menu); // Change the text of the lock/unlock item based on volume status AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; EDVolume selected = mAdapter.getItem((int) info.id); MenuItem lockItem = menu.findItem(R.id.volume_list_menu_lock); if (selected.isLocked()) { lockItem.setTitle(getString(R.string.menu_unlock_volume)); } else { lockItem.setTitle(getString(R.string.menu_lock_volume)); } }
@Override public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { try { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; if (info != null) { fileListView.setSelection(info.position,0); } menu.setHeaderTitle(R.string.fman_operation); AdapterIf ca = getlistadapter(); ca.populateContextMenu(menu,info,fileListView.getSelected()); } catch (Exception e) { e.printstacktrace(); } }
@Override public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu,menuInfo); if (v.getTag() instanceof InputKeyReference) { menu.setHeaderTitle(R.string.what_do_you_want); menu.add(0,KEY_CONTEXT_MENU_CUT,R.string.cut_key); menu.add(0,KEY_CONTEXT_MENU_copY,R.string.copy_key); if (minputKeyRefClipboard.isEmpty() == false) { menu.add(0,KEY_CONTEXT_MENU_PASTE_BEFORE,R.string.paste_before_key); menu.add(0,KEY_CONTEXT_MENU_PASTE_ON,R.string.paste_on_key); menu.add(0,KEY_CONTEXT_MENU_PASTE_AFTER,R.string.paste_after_key); } menu.add(0,KEY_CONTEXT_MENU_CREATE_BEFORE,R.string.create_before_key); menu.add(0,KEY_CONTEXT_MENU_CREATE_AFTER,R.string.create_after_key); menu.add(0,KEY_CONTEXT_MENU_DELETE,R.string.delete_key); menu.add(0,KEY_CONTEXT_MENU_EDIT,R.string.edit_key); // should not use assign,i.e. minputKeyrefunderOpt = v.getTag() // cause minputKeyrefunderOpt and tag may change in different scenarios minputKeyrefunderOpt.copy((InputKeyReference) v.getTag()); } }
@Override public void onCreateContextMenu(ContextMenu menu,menuInfo); AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; getMenuInflater().inflate(R.menu.folder_context,menu); FolderInfoHolder folder = (FolderInfoHolder) mAdapter.getItem(info.position); menu.setHeaderTitle(folder.displayName); }
@Override public void onCreateContextMenu(ContextMenu menu,menuInfo); menu.setHeaderTitle(R.string.accounts_context_menu_title); AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; BaseAccount account = mAdapter.getItem(info.position); if ((account instanceof Account) && !((Account) account).isEnabled()) { getMenuInflater().inflate(R.menu.disabled_accounts_context,menu); } else { getMenuInflater().inflate(R.menu.accounts_context,menu); } if (account instanceof SearchAccount) { for (int i = 0; i < menu.size(); i++) { android.view.MenuItem item = menu.getItem(i); item.setVisible(false); } } else { EnumSet<ACCOUNT_LOCATION> accountLocation = accountLocation(account); if (accountLocation.contains(ACCOUNT_LOCATION.TOP)) { menu.findItem(R.id.move_up).setEnabled(false); } else { menu.findItem(R.id.move_up).setEnabled(true); } if (accountLocation.contains(ACCOUNT_LOCATION.BottOM)) { menu.findItem(R.id.move_down).setEnabled(false); } else { menu.findItem(R.id.move_down).setEnabled(true); } } }
@Override public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu,menuInfo); MenuInflater inflater = getActivity().getMenuInflater(); inflater.inflate(R.menu.verify_display_fragment_context_menu,menu); }
/** * Retrieve filter id from a given context menu info pressed * @param cmi The context menu info to retrieve infos from * @return corresponding filter id if everything goes well,-1 if not able to retrieve filter */ private long filterIdFromContextMenuInfo(ContextMenuInfo cmi) { AdapterView.AdapterContextMenuInfo info; try { info = (AdapterView.AdapterContextMenuInfo) cmi; } catch (ClassCastException e) { Log.e(THIS_FILE,e); return -1; } return info.id; }
@Override public void onCreateContextMenu(ContextMenu menu,menuInfo); final long filterId = filterIdFromContextMenuInfo(menuInfo); if(filterId == -1) { return; } menu.add(0,R.string.edit); menu.add(0,R.string.delete_filter); }
@Override public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo contextMenuInfo) { if (view instanceof TextView && view == codeText) menu.add(Menu.NONE,view.getId(),Menu.NONE,R.string.sync_request_code_context_copy); else super.onCreateContextMenu(menu,contextMenuInfo); }
@Override public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { assert mPopulator != null; mPopulator.buildContextMenu(menu,v.getContext(),mCurrentContextMenuParams); for (int i = 0; i < menu.size(); i++) { menu.getItem(i).setonMenuItemClickListener(this); } }
@Override public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { AdapterView.AdapterContextMenuInfo info; try { info = (AdapterView.AdapterContextMenuInfo) menuInfo; } catch (ClassCastException e) { return; } Cursor cursor = (Cursor)getlistadapter().getItem(info.position); if (cursor == null) { // For some reason the requested item isn't available,do nothing return; } // Setup the menu header menu.setHeaderTitle(cursor.getString(cursor.getColumnIndex(ShoppingList.ITEM))); int status = cursor.getInt(cursor.getColumnIndex(ShoppingList.STATUS)); //Add context menu items depending on current state switch (status) { case ShoppingList.OFF_LIST: menu.add(0,MENU_ITEM_ON_LIST,R.string.move_on_list); menu.add(0,MENU_ITEM_IN_TROLLEY,R.string.move_in_trolley); break; case ShoppingList.ON_LIST: menu.add(0,R.string.move_in_trolley); menu.add(0,MENU_ITEM_OFF_LIST,R.string.move_off_list); break; case ShoppingList.IN_TROLLEY: menu.add(0,R.string.move_off_list); break; } // Add context menu items that are relevant for all items menu.add(0,MENU_ITEM_EDIT,R.string.edit_item); menu.add(0,R.string.delete_item); }
@Override public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { Log.v(L.TAG,"ItemsListReactor.onCreateContextMenu()"); AdapterContextMenuInfo ctxMenuInfo = (AdapterContextMenuInfo)menuInfo; ListView listView = (ListView)findViewById(R.id.ItemsListView); ctxItem = (ItemDesc)listView.getItemAtPosition(ctxMenuInfo.position); menu.setHeaderTitle("Item Options"); menu.add(Menu.NONE,EDIT_ITEM,"Edit"); menu.add(Menu.NONE,DELETE_ITEM,"Delete"); String toggleText; if(ctxItem.isstar()) { toggleText = "Remove Star"; } else { toggleText = "Add Star"; } menu.add(Menu.NONE,TOGGLE_STAR,toggleText); if(dataViewer.getListData().size() > 1) { menu.add(Menu.NONE,MOVE_ITEM,"Move To"); } }
@Override public void onCreateContextMenu(ContextMenu menu,"ListsListReactor.onCreateContextMenu()"); AdapterContextMenuInfo ctxMenuInfo = (AdapterContextMenuInfo)menuInfo; ListView listView = (ListView)findViewById(R.id.ListsListView); ctxList = (ListDesc)listView.getItemAtPosition(ctxMenuInfo.position); menu.setHeaderTitle("List Options"); menu.add(Menu.NONE,EDIT_LIST,DELETE_LIST,"Delete"); }
@Override public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { menu.clear(); menu.add(0,MENU_EDIT,R.string.menu_edit); menu.add(0,MENU_PAUSE,R.string.menu_pause); menu.add(0,MENU_DELETE,R.string.menu_delete); }
@Override protected ContextMenuInfo getContextMenuInfo() { if ((mLongpressedPosition >= 0)) { Spanned text = getText(); int start = mTokenizer.findTokenStart(text,mLongpressedPosition); int end = mTokenizer.findTokenEnd(text,start); if (end != start) { Recipient r = getRecipientAt(getText(),start,end); return new RecipientContextMenuInfo(r); } } return null; }
private void setListViewContextMenuWithDel() { lvMang.setonCreateContextMenuListener(new OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { intCurrDataPos = ((AdapterContextMenuInfo) menuInfo).position; menu.add(0,"删除"); } }); }
private void setListViewContextMenuWithDel_Resume() { lvMang.setonCreateContextMenuListener(new OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu menu,"删除"); menu.add(0,1,"恢复所有已暂停车次"); } }); }
@Override public void onCreateContextMenu(ContextMenu menu,menuInfo); AdapterContextMenuInfo adapterMenuInfo = (AdapterContextMenuInfo)menuInfo; mPosition = adapterMenuInfo.position; ItemData itemData = getItemData(mPosition); if (itemData.type == ITEM_DATA_TYPE_SEParaTOR || itemData.type == ITEM_DATA_TYPE_MESSAGE) { // No contextual menu for separators or messages return; } // Show the name of the file in the header File file = new File(itemData.path); menu.setHeaderTitle(file.getName()); if (itemData.type == ITEM_DATA_TYPE_CURRENT) { // Contextual menu for current subtitles files menu.add(0,R.string.subtitles_wizard_delete,R.string.subtitles_wizard_delete); } else { // Contextual menu for available subtitles files menu.add(0,R.string.subtitles_wizard_associate,R.string.subtitles_wizard_associate); menu.add(0,R.string.subtitles_wizard_delete); } }
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { if (DBG) Log.d(TAG,"onCreateContextMenu"); if ((mCoverRoll != null) && v.equals(mCoverRoll)) { mCoverRoll.createContextMenu(this,menu); } super.onCreateContextMenu(menu,menuInfo); }
@Override public void onCreateContextMenu(ContextMenu menu,menuInfo); // Todo: fill in rest of method }
@Override public void onCreateContextMenu(ContextMenu menu,menuInfo); if (v.equals(ocrResultView)) { menu.add(Menu.NONE,OPTIONS_copY_RECOGNIZED_TEXT_ID,"copy recognized text"); menu.add(Menu.NONE,OPTIONS_SHARE_RECOGNIZED_TEXT_ID,"Share recognized text"); } else if (v.equals(translationView)) { menu.add(Menu.NONE,OPTIONS_copY_TRANSLATED_TEXT_ID,"copy translated text"); menu.add(Menu.NONE,OPTIONS_SHARE_TRANSLATED_TEXT_ID,"Share translated text"); } }
public void onCreateContextMenu(ContextMenu menu,menuInfo); MenuInflater inflater = getMenuInflater(); if (mMode == FILE_PICKER_MODE) { inflater.inflate(R.menu.file_picker_context,menu); } else { inflater.inflate(R.menu.file_chooser_context,menu); } }
@Override public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { AdapterView.AdapterContextMenuInfo info; try { info = (AdapterView.AdapterContextMenuInfo) menuInfo; } catch (ClassCastException e) { Log.e(TAG,e); return; } Cursor cursor = (Cursor) getlistadapter().getItem(info.position); if (cursor == null) { // For some reason the requested item isn't available,do nothing return; } // Inflate menu from XML resource MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.list_context_menu,menu); // Set the context menu header menu.setHeaderTitle(cursor.getString(COLUMN_INDEX_TITLE)); // Append to the // menu items for any other activities that can do stuff with it // as well. This does a query on the system for any activities that // implement the ALTERNATIVE_ACTION for our data,adding a menu item // for each one that is found. Intent intent = new Intent(null,Uri.withAppendedpath(getIntent().getData(),Integer.toString((int) info.id) )); intent.addCategory(Intent.CATEGORY_ALTERNATIVE); menu.addIntentOptions(Menu.CATEGORY_ALTERNATIVE,new ComponentName(this,NotesList.class),null,intent,null); }
@Override public void onCreateContextMenu(ContextMenu menu,menuInfo); // Check if running boolean running = false; ActivityManager activityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); for (RunningAppProcessInfo info : activityManager.getRunningAppProcesses()) if (info.uid == mAppInfo.getUid()) running = true; PackageManager pm = getPackageManager(); List<String> listPackageNames = mAppInfo.getPackageName(); List<String> listApplicationName = mAppInfo.getApplicationName(); for (int i = 0; i < listPackageNames.size(); i++) { Menu appMenu = (listPackageNames.size() == 1) ? menu : menu.addSubMenu(i,listApplicationName.get(i)); // Launch MenuItem launch = appMenu.add(i,MENU_LAUNCH,getString(R.string.menu_app_launch)); if (pm.getLaunchIntentForPackage(listPackageNames.get(i)) == null) launch.setEnabled(false); // Settings appMenu.add(i,MENU_SETTINGS,getString(R.string.menu_app_settings)); // Kill MenuItem kill = appMenu.add(i,MENU_KILL,getString(R.string.menu_app_kill)); kill.setEnabled(running && PrivacyManager.isApplication(mAppInfo.getUid())); // Play store MenuItem store = appMenu.add(i,MENU_STORE,getString(R.string.menu_app_store)); if (!Util.hasMarketLink(this,listPackageNames.get(i))) store.setEnabled(false); } }
@Override public void onCreateContextMenu(ContextMenu menu,menuInfo); if (fingerprint != null) { MenuInflater inflater = getActivity().getMenuInflater(); inflater.inflate(R.menu.verify_display_fragment_context_menu,menu); } }
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { menu.setHeaderTitle(v.getContext().getString(R.string.browse_context_title)); ArrayList<String> menuItems = new ArrayList<String>(); menuItems.add(v.getContext().getString(R.string.open)); menuItems.add(v.getContext().getString(R.string.exitactivity)); for (int i = 0; i < menuItems.size(); i++) { menu.add(Menu.NONE,menuItems.get(i)); } }
@Override public void onCreateContextMenu(ContextMenu menu,menuInfo); toBeProcessUser = (EaseUser) listView.getItemAtPosition(((AdapterContextMenuInfo) menuInfo).position); toBeProcessUsername = toBeProcessUser.getUsername(); getActivity().getMenuInflater().inflate(R.menu.em_context_contact_list,menu); }
@Override public void onCreateContextMenu(ContextMenu menu,menuInfo); AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; Cursor cursor = (Cursor) listView.getItemAtPosition(info.position); if (cursor == null) { return; } getActivity().getMenuInflater().inflate(R.menu.message_list_item_context,menu); menu.findItem(R.id.debug_delete_locally).setVisible(BuildConfig.DEBUG); contextMenuUniqueId = cursor.getLong(uniqueIdColumn); Account account = getAccountFromCursor(cursor); String subject = cursor.getString(SUBJECT_COLUMN); boolean read = (cursor.getInt(READ_COLUMN) == 1); boolean flagged = (cursor.getInt(FLAGGED_COLUMN) == 1); menu.setHeaderTitle(subject); if (selected.contains(contextMenuUniqueId)) { menu.findItem(R.id.select).setVisible(false); } else { menu.findItem(R.id.deselect).setVisible(false); } if (read) { menu.findItem(R.id.mark_as_read).setVisible(false); } else { menu.findItem(R.id.mark_as_unread).setVisible(false); } if (flagged) { menu.findItem(R.id.flag).setVisible(false); } else { menu.findItem(R.id.unflag).setVisible(false); } if (!messagingController.iscopyCapable(account)) { menu.findItem(R.id.copy).setVisible(false); } if (!messagingController.isMoveCapable(account)) { menu.findItem(R.id.move).setVisible(false); menu.findItem(R.id.archive).setVisible(false); menu.findItem(R.id.spam).setVisible(false); } if (!account.hasArchiveFolder()) { menu.findItem(R.id.archive).setVisible(false); } if (!account.hasspamFolder()) { menu.findItem(R.id.spam).setVisible(false); } }
@Override public void onCreateContextMenu(ContextMenu menu,menuInfo); menu.setHeaderTitle(R.string.manage_identities_context_menu_title); getMenuInflater().inflate(R.menu.manage_identities_context,menu); }
ContextMenuInfo createContextMenuInfo(View view,int sectionIndex,int positionInSection,long id) { return new AbsLayoutContainerContextMenuInfo(view,sectionIndex,positionInSection,id); }
public void onCreateContextMenu(ContextMenu menu,ContextMenuInfo menuInfo) { menu.setHeaderTitle("操作"); menu.add(0,"删除"); }
关于MVVM 下 ContextMenu的命令绑定和mvvm如何实现绑定的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于android – onCreateContextMenu使用ContextMenuInfo的null值调用、android – 像ContextMenu一样获取PopupMenu的上下文、Android 的选项菜单OptionsMenu和上下文菜单ContextMenu的使用案例、android.view.ContextMenu.ContextMenuInfo的实例源码的相关知识,请在本站寻找。
本文标签: