LoadManagerを使用した例を次に示し ますhttp://developer.android.com/reference/android/app/LoaderManager.html
セクション化されたアダプターの例は
プライベートクラスSectionAdapterはSectionedAdapterを拡張します{
@Override
protected View getHeaderView(String caption, int index,
View convertView, ViewGroup parent) {
TextView tv = new TextView(LazySectionListActivity.this);
tv.setText(caption);
return tv;
}
}
LoadManagerでの私の問題は、別々のカーソルから日付をフェッチできないことです:(つまり、リストビューに2つの別々のカーソルからのデータを入力する必要があり、それらはリストビューでヘッダーで区切る必要があります(セクション化されたアダプターの場合と同様)。
LoadManagerを使用して、同じリストビューに別々のカーソルのデータを表示するにはどうすればよいですか?
これまでのところ、onCreateLoaderメソッドでカーソルを1つだけ使用して、実行可能な例を作成することができました。
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
Uri baseUri;
baseUri = Contacts.CONTENT_URI;
String select = "((" + Contacts.DISPLAY_NAME + " NOTNULL) AND ("
+ Contacts.HAS_PHONE_NUMBER + "=1) AND ("
+ Contacts.DISPLAY_NAME + " != '' ))";
return new CursorLoader(getActivity(), baseUri,
CONTACTS_SUMMARY_PROJECTION, select, null,
Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
}
しかし、2つの別々のカーソルからのデータを表示する必要があります
私は2つのreturnステートメントを持つことができないことを知っていますが、私はそれを解決する方法がわからないという問題を説明しようとしています
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
Uri baseUri;
baseUri = Contacts.CONTENT_URI;
String select = "((" + Contacts.DISPLAY_NAME + " NOTNULL) AND ("
+ Contacts.HAS_PHONE_NUMBER + "=1) AND ("
+ Contacts.DISPLAY_NAME + " != '' ))";
return new CursorLoader(getActivity(), baseUri,
CONTACTS_SUMMARY_PROJECTION, select, null,
Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
//beside the first cursor data that I want to be displayed
//I also want the date from the second cursor
Uri baseUri2;
baseUri = "some other uri";
String select2 = "some other select";
return new CursorLoader(getActivity(), baseUri2,
projection, select2, null,
MyClass.BlaBla + " COLLATE LOCALIZED ASC");
}