12c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki/* 22c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * Copyright (C) 2015 The Android Open Source Project 32c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * 42c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * Licensed under the Apache License, Version 2.0 (the "License"); 52c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * you may not use this file except in compliance with the License. 62c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * You may obtain a copy of the License at 72c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * 82c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * http://www.apache.org/licenses/LICENSE-2.0 92c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * 102c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * Unless required by applicable law or agreed to in writing, software 112c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * distributed under the License is distributed on an "AS IS" BASIS, 122c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * See the License for the specific language governing permissions and 142c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * limitations under the License. 152c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki */ 162c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki 172c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakipackage com.example.android.support.design.widget; 182c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki 192c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport com.example.android.support.design.R; 202c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki 212c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport android.os.Bundle; 222c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport android.support.annotation.LayoutRes; 232c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport android.support.design.widget.NavigationView; 242c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport android.support.v7.app.AppCompatActivity; 252c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport android.view.MenuItem; 262c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport android.widget.TextView; 272c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport android.widget.Toast; 282c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki 292c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakipublic abstract class NavigationViewUsageBase extends AppCompatActivity { 302c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki 312c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki private TextView mTextMessage; 322c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki 332c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki @Override 342c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki protected void onCreate(Bundle savedInstanceState) { 352c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki super.onCreate(savedInstanceState); 362c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki setContentView(getLayout()); 372c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki 38fa2e2acf79d791a90410025daad438968550d18cAlan Viverette mTextMessage = findViewById(R.id.message); 392c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki 402c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki // Menu 41fa2e2acf79d791a90410025daad438968550d18cAlan Viverette NavigationView navigation = findViewById(R.id.navigation); 422c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki navigation.setNavigationItemSelectedListener(getNavigationItemSelectedListener()); 432c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki navigation.inflateHeaderView(R.layout.design_navigation_header); 442c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki } 452c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki 462c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki @LayoutRes 472c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki protected abstract int getLayout(); 482c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki 492c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki protected abstract NavigationView.OnNavigationItemSelectedListener getNavigationItemSelectedListener(); 502c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki 512c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki protected boolean handleNavigationItemSelected(MenuItem item) { 522c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki switch (item.getItemId()) { 532c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki case R.id.navigation_item_1: 542c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki mTextMessage.setText("1"); 552c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki return true; 562c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki case R.id.navigation_item_2: 572c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki mTextMessage.setText("2"); 582c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki return true; 592c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki case R.id.navigation_item_3: 602c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki mTextMessage.setText("3"); 612c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki return true; 622c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki case R.id.navigation_sub_item_1: 632c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki showToast(R.string.navigation_sub_item_1); 642c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki return true; 652c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki case R.id.navigation_sub_item_2: 662c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki showToast(R.string.navigation_sub_item_2); 672c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki return true; 68f3865fbd67715b07d43da357dea742edf3bf9913Yuichi Araki case R.id.navigation_sub_item_3: 69f3865fbd67715b07d43da357dea742edf3bf9913Yuichi Araki showToast(R.string.navigation_sub_item_3); 70f3865fbd67715b07d43da357dea742edf3bf9913Yuichi Araki return true; 712c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki case R.id.navigation_with_icon: 722c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki showToast(R.string.navigation_item_with_icon); 732c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki return true; 742c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki case R.id.navigation_without_icon: 752c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki showToast(R.string.navigation_item_without_icon); 762c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki return true; 772c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki default: 782c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki return false; 792c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki } 802c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki } 812c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki 822c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki private void showToast(int res) { 832c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki Toast.makeText(this, getString(R.string.navigation_message, getString(res)), 842c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki Toast.LENGTH_SHORT).show(); 852c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki } 862c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki 872c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki} 88