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 com.example.android.supportv7.R; 2035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 2135ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.graphics.drawable.Drawable; 2235ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.os.Bundle; 2335ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.support.v4.view.MenuItemCompat; 2435ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.support.v7.app.AppCompatActivity; 2535ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.support.v7.view.ActionMode; 2635ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.support.v7.widget.SearchView; 2735ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.text.TextUtils; 2835ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.view.Menu; 2935ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.view.MenuInflater; 3035ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.view.MenuItem; 3135ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.view.View; 3235ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.widget.TextView; 3335ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.widget.Toast; 3435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 3535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes/** 3635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * This demonstrates idiomatic usage of an action mode. 3735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes */ 3835ca04feb36f74e5369a62114e33996cd4a62575Chris Banespublic class ActionBarActionMode extends AppCompatActivity { 3935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 4035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes @Override 4135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes protected void onCreate(Bundle savedInstanceState) { 4235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes super.onCreate(savedInstanceState); 4335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes setContentView(R.layout.action_bar_action_mode); 4435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 4535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes findViewById(R.id.btn_start_action_mode).setOnClickListener(new View.OnClickListener() { 4635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes @Override 4735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes public void onClick(View view) { 4835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes startActionMode(); 4935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes } 5035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes }); 5135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes } 5235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 5335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes private void startActionMode() { 5435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes startSupportActionMode(new ActionMode.Callback() { 5535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes @Override 5635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes public boolean onCreateActionMode(ActionMode mode, Menu menu) { 5735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes mode.getMenuInflater().inflate(R.menu.actions, menu); 5835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes return true; 5935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes } 6035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 6135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes @Override 6235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 6335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes return false; 6435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes } 6535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 6635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes @Override 6735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 6835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes Toast.makeText(ActionBarActionMode.this, 6935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes "Action Mode item clicked:" + item.getTitle(), Toast.LENGTH_SHORT).show(); 7035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes return true; 7135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes } 7235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 7335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes @Override 7435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes public void onDestroyActionMode(ActionMode mode) { 7535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes } 7635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes }); 7735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes } 7835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes 7935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes} 80