135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes/* 235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * Copyright (C) 2015 The Android Open Source Project 335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * 435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * Licensed under the Apache License, Version 2.0 (the "License"); 535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * you may not use this file except in compliance with the License. 635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * You may obtain a copy of the License at 735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * 835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * http://www.apache.org/licenses/LICENSE-2.0 935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * 1035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * Unless required by applicable law or agreed to in writing, software 1135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * distributed under the License is distributed on an "AS IS" BASIS, 1235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * See the License for the specific language governing permissions and 1435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * limitations under the License. 1535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes */ 1635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 1735ca04feb36f74e5369a62114e33996cd4a62575Chris Banespackage com.example.android.supportv7.app; 1835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 1935ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.os.Bundle; 2035ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.support.v7.app.AppCompatActivity; 2135ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.support.v7.view.ActionMode; 2235ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.view.Menu; 2335ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.view.MenuItem; 2435ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.view.View; 2535ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.widget.Toast; 2635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 2727644c071b7fc0e1e4f91194f2a08b4aa2cf1465Aurimas Liutikasimport com.example.android.supportv7.R; 2827644c071b7fc0e1e4f91194f2a08b4aa2cf1465Aurimas Liutikas 2935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes/** 3035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * This demonstrates idiomatic usage of an action mode. 3135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes */ 3235ca04feb36f74e5369a62114e33996cd4a62575Chris Banespublic class ActionBarActionMode extends AppCompatActivity { 3335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 3435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes @Override 3535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes protected void onCreate(Bundle savedInstanceState) { 3635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes super.onCreate(savedInstanceState); 3735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes setContentView(R.layout.action_bar_action_mode); 3835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 3935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes findViewById(R.id.btn_start_action_mode).setOnClickListener(new View.OnClickListener() { 4035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes @Override 4135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes public void onClick(View view) { 4235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes startActionMode(); 4335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes } 4435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes }); 4535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes } 4635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 4735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes private void startActionMode() { 4835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes startSupportActionMode(new ActionMode.Callback() { 4935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes @Override 5035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes public boolean onCreateActionMode(ActionMode mode, Menu menu) { 5135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes mode.getMenuInflater().inflate(R.menu.actions, menu); 5235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes return true; 5335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes } 5435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 5535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes @Override 5635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 5735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes return false; 5835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes } 5935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 6035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes @Override 6135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 6235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes Toast.makeText(ActionBarActionMode.this, 6335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes "Action Mode item clicked:" + item.getTitle(), Toast.LENGTH_SHORT).show(); 6435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes return true; 6535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes } 6635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 6735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes @Override 6835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes public void onDestroyActionMode(ActionMode mode) { 6935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes } 7035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes }); 7135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes } 7235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 7335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes} 74