Java tutorial
/* * Copyright 2016 The Open Source Project of Jackie Zhu * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.jackie.appbar; import android.annotation.TargetApi; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.support.v4.view.MenuItemCompat; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.ShareActionProvider; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends AppCompatActivity { public static final String TAG = "MainActivity"; @TargetApi(Build.VERSION_CODES.LOLLIPOP) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (SDKUtils.IS_LOLLIPOP) { android.widget.Toolbar toolbar = (android.widget.Toolbar) findViewById(R.id.my_toolbar); setActionBar(toolbar); } else { Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(toolbar); } } /** * Initialize the contents of the Activity's standard options menu. You * should place your menu items in to <var>menu</var>. * <p/> * <p>This is only called once, the first time the options menu is * displayed. To update the menu every time it is displayed, see * {@link #onPrepareOptionsMenu}. * <p/> * <p>The default implementation populates the menu with standard system * menu items. These are placed in the {@link Menu#CATEGORY_SYSTEM} group so that * they will be correctly ordered with application-defined menu items. * Deriving classes should always call through to the base implementation. * <p/> * <p>You can safely hold on to <var>menu</var> (and any items created * from it), making modifications to it as desired, until the next * time onCreateOptionsMenu() is called. * <p/> * <p>When you add items to the menu, you can implement the Activity's * {@link #onOptionsItemSelected} method to handle them there. * * @param menu The options menu in which you place your items. * @return You must return true for the menu to be displayed; * if you return false it will not be shown. * @see #onPrepareOptionsMenu * @see #onOptionsItemSelected */ @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate menu resource file getMenuInflater().inflate(R.menu.sample_actions, menu); Log.i(TAG, "onOptionsItemSelected: click share"); Intent sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send"); sendIntent.setType("text/plain"); MenuItem item = menu.findItem(R.id.action_share); if (SDKUtils.IS_ICE_CREAM_SANDWICH) { android.widget.ShareActionProvider shareActionProvider = (android.widget.ShareActionProvider) item .getActionProvider(); shareActionProvider.setShareIntent(sendIntent); } else { ShareActionProvider shareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item); shareActionProvider.setShareIntent(sendIntent); } // Return true to display menu return true; } /** * This hook is called whenever an item in your options menu is selected. * The default implementation simply returns false to have the normal * processing happen (calling the item's Runnable or sending a message to * its Handler as appropriate). You can use this method for any items * for which you would like to do processing without those other * facilities. * <p/> * <p>Derived classes should call through to the base class for it to * perform the default menu handling.</p> * * @param item The menu item that was selected. * @return boolean Return false to allow normal menu processing to * proceed, true to consume it here. * @see #onCreateOptionsMenu */ @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_favorite: startActivity(new Intent(this, MyChildActivity.class)); return true; case R.id.action_settings: return true; default: return super.onOptionsItemSelected(item); } } }