Так же, как и в заголовке, onCreateLoader работает над пользовательским интерфейсом.Я не знаю, почему это происходит.Я попытался создать пользовательский AsyncLoader, который расширяет AsyncLoader, но это тоже не сработало.
Я вижу, что подобный вопрос по этому поводу в stackoverflow, но я не мог понять ошибку, которую я использовал, используя это.Любая помощь будет оценена, вот код:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
// Other stuff here....
linlaHeaderProgress = (LinearLayout) findViewById(R.id.linlaHeaderProgress);
linlaHeaderProgress.setVisibility(View.VISIBLE);
getLoaderManager().initLoader(LOADER_ID, null, this);
// Other stuff here....
} catch (Exception e){
e.printStackTrace();
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
for(int i =0;i <25;i++) {
fillDataBase();
}
String [] projection = {
FoodContract.FoodEntry._ID,
FoodContract.FoodEntry.COLUMN_FOOD_ITEM_NAME,
FoodContract.FoodEntry.COLUMN_FOOD_ITEM_DESC,
FoodContract.FoodEntry.COLUMN_FOOD_ITEM_PRICE,
FoodContract.FoodEntry.COLUMN_FOOD_ITEM_RATING,
FoodContract.FoodEntry.COLUMN_FOOD_ITEM_CATEGORY
};
final String CONTENT_AUTHORITY = "com.example.android.food";
final Uri BASE_CONTENT_URI = Uri.parse("content://" + CONTENT_AUTHORITY);
final String PATH_FOOD = "food";
Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI, PATH_FOOD);
Cursor foodCursor = getContentResolver().query(
CONTENT_URI, null,null,null, null);
try {
//Iterating through the cursor code here...
} catch (Exception e){
e.printStackTrace();
}
// This loader will execute the ContentProvider's query method on a background thread
return new CursorLoader(this,
CONTENT_URI,
projection,
null,
null,
null);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
try {
adapter = new MyAdapter(this, foodItemArrayList);
rv.setAdapter(adapter);
linlaHeaderProgress.setVisibility(View.GONE);
} catch (Exception e){
e.printStackTrace();
}
}