Я хочу получать новый список каждый раз и обновлять представление, когда viewpager в определенном положении. Я попытался сделать это ниже, но он больше отставал. Я обновляю свой список на первой странице, и я получаю эти обновления результаты в 3 page.so мне нужно, чтобы получить новые результаты каждый раз на этой странице 3 и обновить viewpager.Any sugg пожалуйстаОбновить элементы Viewpager в частности Страница
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
check=position;
if(position==3) {
runOnUiThread(new Runnable() {
@Override
public void run() {
recentList=new ArrayList<PlayerModel>();
mySQLiteAdapter = new SQLiteAdapter(MultHomePageActivity.this);
mySQLiteAdapter.openToWrite();
Cursor mFavoritesCursor = mySQLiteAdapter.fetchRecentData(AppConstants.AUDIO_TABLE);
LogUtil.error("Count",mFavoritesCursor.getCount()+"-->");
if(mFavoritesCursor!=null)
recentList= getAudioFavRecentsList(mFavoritesCursor);
mySQLiteAdapter.close();
adapter.notifyDataSetChanged(); }
});
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
Я попытался поместить свой код в отдельном потоке, как this.still он отставал
private class AsyncTaskRunner extends AsyncTask<String, String, String> {
private String resp;
@Override
protected String doInBackground(String... params) {
recentList=new ArrayList<PlayerModel>();
mySQLiteAdapter = new SQLiteAdapter(MultHomePageActivity.this);
mySQLiteAdapter.openToWrite();
Cursor mFavoritesCursor = mySQLiteAdapter.fetchRecentData(AppConstants.AUDIO_TABLE);
LogUtil.error("Recent Count",mFavoritesCursor.getCount()+"-->");
if(mFavoritesCursor!=null)
recentList= getAudioFavRecentsList(mFavoritesCursor);
mySQLiteAdapter.close();
adapter.setFragment(fragmentMultCards.newInstance(recentList,AppConstants.
AUDIO_PLAYER,AppConstants.RECENT_PLAYER),3,getString(R.string.msg_recents));
return resp;
}
@Override
protected void onPostExecute(String result) {
adapter.notifyDataSetChanged();
}
@Override
protected void onPreExecute() {
}
@Override
protected void onProgressUpdate(String... text) {
}
}
private List<PlayerModel> getAudioFavRecentsList(Cursor mAudioCursor) {
List<PlayerModel> cursorList=new ArrayList<>();
if (mAudioCursor != null) {
if(mAudioCursor.getCount()>0)
do{
cursorList.add(new PlayerModel(
mAudioCursor.getInt(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_ID)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_DISPLAY_NAME)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_SIZE)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_DATE_TAKEN)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_DURATION)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_ALBUM)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_ALBUM_ID)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_ARTIST)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_COMPOSER)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_DATA)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_TRACK)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_MIME)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_IS_ALARAM)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_BOOKMARK)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_TITLE)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_IS_NOTIFICATION)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_IS_MUSIC)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_RECENT_DATE)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_FAVORITE)),
mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(AppConstants.KEY_AUDIO))
));
}while (mAudioCursor.moveToNext());
}
return cursorList;
}
Можете ли вы объяснить это примером PLS –
Я обновил свой qn pls, проверив его. Я попробовал AsyncTask, но моя страница была отстающей. –
Можете ли вы поделиться кодом метода getAudioFavRecentsList? –