viewPager
の画像をスライドさせようとしていますが、画像がドローブ可能なフォルダから画像を使用している間に自動的にスライドします。しかし、私は、サーバー・イメージのURLからその示すエラーをスライドしなければ、サーバからの画像を表示するには、このような何か抱き合わせていながら:サーバーから画像を表示しているときにエラーが発生しました.Picassoのアンドロイド
をアプリケーションのPagerAdapterはPagerAdapter#notifyDataSetChangedを呼び出さずに、アダプタの内容を変更しました!
私はグーグルでこの問題を解決しようとしましたが、解決できませんでした。私は助けが必要です。私のコードは以下の通りです:
アクティビティ作業:
String imageListQuery=null;
try {
imageListQuery=URLEncoder.encode("getChatRooms", "UTF-8") + "=" + URLEncoder.encode("getChatRooms", "UTF-8");
backgroundTask=new AsyncTaskClass(context_NavigationActivity, new AsyncTaskResult() {
@Override
public void AsyncTaskResult(String result) throws JSONException {
if(result!=null){
pageViewerAdapter.notifyDataSetChanged();
}
JSONObject js = new JSONObject(result);
// Log.v("ResDFrJ",js.toString());
JSONArray arr = js.getJSONArray("result");
for (int i = 0; i < arr.length(); i++) {
JSONObject tmpOb = new JSONObject(arr.optString(i));
UsersListShowClass tmpClass = new UsersListShowClass();
tmpClass.setProPicUrl_users(InfoSetClass.getBaseUrl()+tmpOb.getString("profile_pic_id"));
imageList.add(i,tmpClass);
}
}
});
backgroundTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,"POST","mobileApi/chatRooms",imageListQuery);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
viewPager=(ViewPagerCustomDuration)findViewById(R.id.pageViewerId);
viewPager.setScrollDurationFactor(15);
pageViewerAdapter=new PageViewerAdapter(context_NavigationActivity,imageList);
NUM_PAGES=pageViewerAdapter.getCount();
viewPager.setAdapter(pageViewerAdapter);
pageViewerAdapter.notifyDataSetChanged();
final Handler handler = new Handler();
final Runnable update = new Runnable() {
public void run() {
if (currentPage == NUM_PAGES - 1) {
currentPage = 0;
}
viewPager.setCurrentItem(currentPage++, true);
}
};
new Timer().schedule(new TimerTask() {
@Override
public void run() {
handler.post(update);
}
}, 100, 5000);
アダプタ:
public class PageViewerAdapter extends PagerAdapter {
private Context context;
private ArrayList<UsersListShowClass> imageList;
UsersListShowClass usersListShowClass;
public PageViewerAdapter(Context context,ArrayList<UsersListShowClass> imageList){
this.context=context;
this.imageList=imageList;
}
@Override
public int getCount() {
if(imageList != null){
return imageList.size();
}
return 0;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return (view==(LinearLayout)object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
LayoutInflater layoutInflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view=layoutInflater.inflate(R.layout.page_viewer_adapter_layout,container,false);
ImageView imageView=(ImageView)view.findViewById(R.id.videoViewId);
usersListShowClass=imageList.get(position);
Picasso.with(context).load(usersListShowClass.getProPicUrl_users()).error(R.drawable.ic_circle_24dp).
placeholder(R.drawable.ic_circle_24dp).into(imageView);
container.addView(view);
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((LinearLayout) object);
}
@Override
public int getItemPosition(Object object) {
return PageViewerAdapter.POSITION_NONE;
}
}
私はstackoverflowの中にそのすでに解決し、ほぼ同様のエラーを知っているが、私の場合は多分少し異なる。助けが必要です。
は、なぜあなたは 'ViewPager' pageViewerを呼び出していますか? –
申し訳ありませんが私はそれを間違って呼び出している – AAA