Pages

Thursday, June 2, 2016

Show Contextual Menu ActionMode

activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button_contextualmenu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="166dp"
        android:text="Show Contextual Menu" />

</RelativeLayout>
MainActivity.java
package in.blogspot.kantapp.contextualmenuactionmode;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

@SuppressLint("NewApi")
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button b = (Button) findViewById(R.id.button_contextualmenu);

        b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                startActionMode(mActionModeCallback);
            }
        });

    }

    @SuppressLint("NewApi")
    private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {

        // Called when the action mode is created; startActionMode() was called
        @Override
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            // Inflate a menu resource providing context menu items
            MenuInflater inflater = mode.getMenuInflater();
            inflater.inflate(R.menu.main, menu);
            return true;
        }

        // Called each time the action mode is shown. Always called after
        // onCreateActionMode, but
        // may be called multiple times if the mode is invalidated.
        @Override
        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            return false; // Return false if nothing is done
        }

        // Called when the user selects a contextual menu item
        @Override
        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            switch (item.getItemId()) {
                case R.id.item1:
                    Toast.makeText(getApplicationContext(), "item1 selected",
                            Toast.LENGTH_SHORT).show();
                    break;
                case R.id.item2:
                    Toast.makeText(getApplicationContext(), "item2 selected",
                            Toast.LENGTH_SHORT).show();
                    break;
                case R.id.item3:
                    Toast.makeText(getApplicationContext(), "item3 selected",
                            Toast.LENGTH_SHORT).show();
                    break;
            }
            return false;
        }

        @Override
        public void onDestroyActionMode(ActionMode arg0) {
            // TODO Auto-generated method stub

        }

    };

}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/item1"
        android:orderInCategory="100"
        android:showAsAction="ifRoom|withText"
        android:title="ITEM 1"/>
    <item
        android:id="@+id/item2"
        android:orderInCategory="100"
        android:showAsAction="ifRoom|withText"
        android:title="ITEM 2"/>
    <item
        android:id="@+id/item3"
        android:orderInCategory="100"
        android:showAsAction="ifRoom|withText"
        android:title="ITEM 3"/>

</menu>

No comments:

Post a Comment