[syntax=java]
public class MyFragment1 extends Fragment implements OnItemSelectedListener, OnItemClickListener, LoaderCallbacks<Cursor> {
private static final String DEBUG_TAG = "myLogs";
private DataBase db;
private ListView myList;
private SimpleCursorAdapter myAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_1, container, false);
myList = (ListView) v.findViewById(R.id.listView_points);
String[] from = { DataBase.COLUMN_DATETIME};
int[] to = { R.id.textView_date};
myAdapter = new SimpleCursorAdapter(getActivity(), R.layout.point_list_item, null, from, to, 0);
myList.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);
myList.setAdapter(myAdapter);
myList.setOnItemClickListener(this);
getActivity().getSupportLoaderManager().initLoader(0, null, this);
return v;
}
@Override
public void onAttach(Activity activity) {
if (!(activity instanceof MainActivity)) {
throw new IllegalStateException(
"Activity must implement MainActivity.");
}
db = ((MainActivity) activity).getDataBase();
super.onAttach(activity);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
long id) {
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
}
static class MyCursorLoader extends CursorLoader {
DataBase db;
public MyCursorLoader(Context context, DataBase db) {
super(context);
this.db = db;
}
@Override
public Cursor loadInBackground() {
Cursor cursor = db.getAllPointData();
return cursor;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
return new MyCursorLoader(getActivity(), db);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cur) {
myAdapter.changeCursor(cur);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
myAdapter.changeCursor(null);
}
}[/syntax]
В первом фрагменте вызывается:
Код: Выделить всё
getActivity().getSupportLoaderManager().initLoader(0, null, this);Код: Выделить всё
getActivity().getSupportLoaderManager().initLoader(1, null, this);Что не так? Как сделать чтобы не плодились потоки? Может эту задачу вообще лучше по-другому решать?
