From d21c55665c76edaaad4f1df6b16595cad5ee38e3 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 5 Aug 2010 18:20:35 -0700 Subject: [PATCH] Some tweaks to the loader API demo. Unfinished, but checkpointing. Change-Id: Ib832a6915847302e8bbb23c6cf111c932fdacabf --- samples/ApiDemos/AndroidManifest.xml | 2 ++ .../res/drawable/magnifying_glass.png | Bin 0 -> 3813 bytes .../apis/app/FragmentListCursorLoader.java | 31 ++++++++++++++++++ .../android/apis/app/FragmentMenu.java | 7 ++-- 4 files changed, 37 insertions(+), 3 deletions(-) create mode 100755 samples/ApiDemos/res/drawable/magnifying_glass.png diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml index 82469d110..48b7f233e 100644 --- a/samples/ApiDemos/AndroidManifest.xml +++ b/samples/ApiDemos/AndroidManifest.xml @@ -254,6 +254,7 @@ @@ -270,6 +271,7 @@ diff --git a/samples/ApiDemos/res/drawable/magnifying_glass.png b/samples/ApiDemos/res/drawable/magnifying_glass.png new file mode 100755 index 0000000000000000000000000000000000000000..2592ae0a7025f51e588a6d1eee8a6311f0811b6b GIT binary patch literal 3813 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 bZvgloIjl?6;zy9B00000NkvXXu0mjfK>Z%m literal 0 HcmV?d00001 diff --git a/samples/ApiDemos/src/com/example/android/apis/app/FragmentListCursorLoader.java b/samples/ApiDemos/src/com/example/android/apis/app/FragmentListCursorLoader.java index 6889a0828..c095692d2 100644 --- a/samples/ApiDemos/src/com/example/android/apis/app/FragmentListCursorLoader.java +++ b/samples/ApiDemos/src/com/example/android/apis/app/FragmentListCursorLoader.java @@ -16,16 +16,23 @@ package com.example.android.apis.app; +import com.example.android.apis.R; + import android.app.Activity; import android.app.ListFragment; import android.app.LoaderManager; +import android.content.Context; import android.content.CursorLoader; import android.content.Loader; import android.database.Cursor; import android.os.Bundle; import android.provider.ContactsContract.Contacts; import android.util.Log; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.SimpleCursorAdapter; @@ -49,6 +56,8 @@ public class FragmentListCursorLoader extends Activity { public static class CursorLoaderListFragment extends ListFragment implements LoaderManager.LoaderCallbacks { + MenuItem mSearchMenu; + @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); @@ -57,11 +66,33 @@ public class FragmentListCursorLoader extends Activity { // application this would come from a resource. setEmptyText("No phone numbers"); + // We have a menu item to show in action bar. + setHasOptionsMenu(true); + // Prepare the loader. Either re-connect with an existing one, // or start a new one. getLoaderManager().initLoader(0, null, this); } + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + mSearchMenu = menu.add("Search"); + mSearchMenu.setIcon(R.drawable.magnifying_glass); + mSearchMenu.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (item == mSearchMenu) { + InputMethodManager imm = (InputMethodManager)getActivity() + .getSystemService(Context.INPUT_METHOD_SERVICE); + imm.showSoftInput(getActivity().getCurrentFocus(), 0); + return true; + } else { + return super.onOptionsItemSelected(item); + } + } + @Override public void onListItemClick(ListView l, View v, int position, long id) { Log.i("FragmentComplexList", "Item clicked: " + id); diff --git a/samples/ApiDemos/src/com/example/android/apis/app/FragmentMenu.java b/samples/ApiDemos/src/com/example/android/apis/app/FragmentMenu.java index e928fa791..68e24468f 100644 --- a/samples/ApiDemos/src/com/example/android/apis/app/FragmentMenu.java +++ b/samples/ApiDemos/src/com/example/android/apis/app/FragmentMenu.java @@ -8,6 +8,7 @@ import android.app.FragmentTransaction; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.CheckBox; @@ -89,8 +90,8 @@ public class FragmentMenu extends Activity { @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - menu.add("Menu 1a"); - menu.add("Menu 1b"); + menu.add("Menu 1a").setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + menu.add("Menu 1b").setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); } } @@ -107,7 +108,7 @@ public class FragmentMenu extends Activity { @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - menu.add("Menu 2"); + menu.add("Menu 2").setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); } } }