編輯:關於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);
}
}
}
(Android 基礎(六)) ActionBar
介紹Action Bar是一種新増的導航欄功能,在Android 3.0之後加入到系統的API當中,它標識了用戶當前操作界面的位置,並提供了額外的用戶動作、界面導航等功能
Android仿微信語音聊天功能
本文實例講述了Android仿微信語音聊天功能代碼。分享給大家供大家參考。具體如下:項目效果如下:具體代碼如下:AudioManager.javapackage com.
手機qq安裝失敗怎麼辦 手機qq安裝後打不開是什麼原因
手機qq安裝失敗怎麼辦?手機qq安裝後打不開是什麼原因?下面我們一起看看解決方法吧!手機安裝失敗原因及解決方法1、證書過期(或者未生效): 下載安裝前將手
android滑動沖突的解決方案
一、前言Android 中解決滑動的方案有2種:外部攔截法 和內部攔截法。滑動沖突也存在2種場景: 橫豎滑動沖突、同向滑動沖突。所以我就寫了4個例子來學習如何解決滑動沖突