Prepare for some changes to LoaderManager/Loader.

Sorry it is a bit ugly, it is to allow this change to be
checked in prior to the first stage of the framework change
without breaking the build.

Change-Id: Ia59181602679608e765664ecff1fbb52306d9559
This commit is contained in:
Dianne Hackborn
2010-12-16 00:42:29 -08:00
parent 34ce501365
commit ec04e5da4b

View File

@@ -33,9 +33,10 @@ 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.SearchView;
import android.widget.SimpleCursorAdapter;
import android.widget.SearchView.OnQueryChangeListener;
/**
* Demonstration of more complex use if a ListFragment, including showing
@@ -54,8 +55,10 @@ public class FragmentListCursorLoader extends Activity {
}
}
//BEGIN_INCLUDE(fragment_cursor)
public static class CursorLoaderListFragment extends ListFragment
implements LoaderManager.LoaderCallbacks<Cursor> {
implements OnQueryChangeListener, LoaderManager.LoaderCallbacks<Cursor> {
SimpleCursorAdapter mAdapter;
MenuItem mSearchMenu;
@Override
@@ -77,10 +80,24 @@ public class FragmentListCursorLoader extends Activity {
@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);
mSearchMenu.setTitle("Search");
mSearchMenu.setIcon(android.R.drawable.ic_menu_search);
mSearchMenu.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
SearchView sv = new SearchView(getActivity());
sv.setOnQueryChangeListener(this);
mSearchMenu.setActionView(sv);
}
@Override
public boolean onQueryTextChanged(String newText) {
return true;
}
@Override
public boolean onSubmitQuery(String query) {
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item == mSearchMenu) {
@@ -117,11 +134,20 @@ public class FragmentListCursorLoader extends Activity {
}
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
ListAdapter adapter = new SimpleCursorAdapter(getActivity(),
android.R.layout.simple_list_item_2, data,
new String[] { Contacts.DISPLAY_NAME, Contacts.CONTACT_STATUS },
new int[] { android.R.id.text1, android.R.id.text2 });
setListAdapter(adapter);
if (mAdapter == null) {
mAdapter = new SimpleCursorAdapter(getActivity(),
android.R.layout.simple_list_item_2, data,
new String[] { Contacts.DISPLAY_NAME, Contacts.CONTACT_STATUS },
new int[] { android.R.id.text1, android.R.id.text2 });
setListAdapter(mAdapter);
} else {
mAdapter.changeCursor(data);
}
}
public void onLoaderReset(Loader<Cursor> loader) {
mAdapter.changeCursor(null);
}
}
//END_INCLUDE(fragment_cursor)
}