編輯:關於Android編程
如果一個View注冊了上下文菜單,那麼當長按該View時便會彈出一個浮動菜單,來供選擇下一步操作。
實現這個功能需要調用setOnCreateContextMenuListener來注冊一個監聽器,那麼它和注冊長按監聽器setOnLongClickListener有什麼區別呢?下面會在代碼中加以測試,通過添加打印發現,用戶對某個View長按之後,首先觸發的是onLongClick函數,執行onLongClick操作,然後根據onLongClick的返回值判斷是不是執行OnCreateContextMenuListener函數;如果onLongClick返回false,則會繼續執行OnCreateContextMenuListener函數,如果返回true,忽略OnCreateContextMenuListener函數。
public class MainActivity extends ActionBarActivity { ImageView mImageView ; MyContextMenuClickListener mContextListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_main); mImageView = (ImageView) findViewById(R.id.image); mContextListener = new MyContextMenuClickListener(); mImageView.setOnCreateContextMenuListener(mContextListener); //test mImageView.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View arg0) { // TODO Auto-generated method stub Log.d("Test", "onLongClick"); return false; } }); } private class MyContextMenuClickListener implements OnCreateContextMenuListener , OnMenuItemClickListener{ @Override public boolean onMenuItemClick(MenuItem item) { // TODO Auto-generated method stub switch(item.getItemId()){ case R.id.open: Log.d("Test", "click open"); break; case R.id.delete: Log.d("Test", "click delete"); break; case R.id.remove: Log.d("Test", "click remove"); break; default: break; } return true; } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub Log.d("Test", "onCreateContextMenu"); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.context_menu, menu); LayoutInflater layoutInflater = getLayoutInflater(); View view = (View) layoutInflater.inflate( R.layout.menu_header, null); menu.setHeaderView(view); MenuItem open = menu.findItem(R.id.open); open.setOnMenuItemClickListener(mContextListener); MenuItem delete = menu.findItem(R.id.delete); delete.setOnMenuItemClickListener(mContextListener); MenuItem remove = menu.findItem(R.id.remove); remove.setOnMenuItemClickListener(mContextListener); } } }
介紹Action Bar是一種新増的導航欄功能,在Android 3.0之後加入到系統的API當中,它標識了用戶當前操作界面的位置,並提供了額外的用戶動作、界面導航等功能
本文實例講述了Android仿微信語音聊天功能代碼。分享給大家供大家參考。具體如下:項目效果如下:具體代碼如下:AudioManager.javapackage com.
手機qq安裝失敗怎麼辦?手機qq安裝後打不開是什麼原因?下面我們一起看看解決方法吧!手機安裝失敗原因及解決方法1、證書過期(或者未生效): 下載安裝前將手
一、前言Android 中解決滑動的方案有2種:外部攔截法 和內部攔截法。滑動沖突也存在2種場景: 橫豎滑動沖突、同向滑動沖突。所以我就寫了4個例子來學習如何解決滑動沖突