I want to show ActionMode menu (for having more options) with LongClicking on each rows of my ListView in my proje. but as I click on them, nothing happen. note: I use this tutorial for writing this code: http://wptrafficanalyzer.in/blog/creating-a-contextual-menu-bar-contextual-action-mode-for-a-single-view-in-android/ this is my code:
public class MyActivity extends Activity {
private ListView listView;
private ActionMode actionMode;
ActionMode.Callback callback;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView) findViewById(R.id.ListView);
final ActionMode.Callback callback = new ActionMode.Callback() {
/** Invoked whenever the action mode is shown. This is invoked immediately after onCreateActionMode */
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
/** Called when user exits action mode */
@Override
public void onDestroyActionMode(ActionMode mode) {
actionMode = null;
}
/** This is called when the action mode is created. This is called by startActionMode() */
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mode.setTitle("Demo");
getMenuInflater().inflate(R.menu.edit_vow, menu);
return true;
}
/** This is called when an item in the context menu is selected */
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch(item.getItemId()){
case R.id.editBTN:
Toast.makeText(getBaseContext(), "Selected Action1 ", Toast.LENGTH_LONG).show();
mode.finish(); // Automatically exists the action mode, when the user selects this action
break;
case R.id.deleteBTN:
Toast.makeText(getBaseContext(), "Selected Action2 ", Toast.LENGTH_LONG).show();
break;
case R.id.doneBTN:
Toast.makeText(getBaseContext(), "Selected Action3 ", Toast.LENGTH_LONG).show();
break;
}
return true;
}
};
//long-click to edit data
View.OnLongClickListener listener = new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if(actionMode!=null)
return false;
else
actionMode = startActionMode(callback);
return true;
}
};
listView.setOnLongClickListener(listener);
}
Please help me, thanks!