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:
@@ -33,9 +33,10 @@ import android.view.MenuInflater;
|
|||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.widget.ListAdapter;
|
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
|
import android.widget.SearchView;
|
||||||
import android.widget.SimpleCursorAdapter;
|
import android.widget.SimpleCursorAdapter;
|
||||||
|
import android.widget.SearchView.OnQueryChangeListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Demonstration of more complex use if a ListFragment, including showing
|
* 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
|
public static class CursorLoaderListFragment extends ListFragment
|
||||||
implements LoaderManager.LoaderCallbacks<Cursor> {
|
implements OnQueryChangeListener, LoaderManager.LoaderCallbacks<Cursor> {
|
||||||
|
SimpleCursorAdapter mAdapter;
|
||||||
MenuItem mSearchMenu;
|
MenuItem mSearchMenu;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -77,8 +80,22 @@ public class FragmentListCursorLoader extends Activity {
|
|||||||
@Override
|
@Override
|
||||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||||
mSearchMenu = menu.add("Search");
|
mSearchMenu = menu.add("Search");
|
||||||
mSearchMenu.setIcon(R.drawable.magnifying_glass);
|
mSearchMenu.setTitle("Search");
|
||||||
mSearchMenu.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
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
|
@Override
|
||||||
@@ -117,11 +134,20 @@ public class FragmentListCursorLoader extends Activity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
|
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
|
||||||
ListAdapter adapter = new SimpleCursorAdapter(getActivity(),
|
if (mAdapter == null) {
|
||||||
android.R.layout.simple_list_item_2, data,
|
mAdapter = new SimpleCursorAdapter(getActivity(),
|
||||||
new String[] { Contacts.DISPLAY_NAME, Contacts.CONTACT_STATUS },
|
android.R.layout.simple_list_item_2, data,
|
||||||
new int[] { android.R.id.text1, android.R.id.text2 });
|
new String[] { Contacts.DISPLAY_NAME, Contacts.CONTACT_STATUS },
|
||||||
setListAdapter(adapter);
|
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)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user