0

나는이 목록은이 12 개 항목/URL의 생성 된 AsyncTask업데이트 Viewpager 데이터를 동적으로

처음 사용하여 내 Home_Fragment에 인터넷에서 촬영 한 이미지의 URL에 의해 인스턴스화하고 내 사용자 정의 모델 클래스의 ArrayList를이 웹 사이트에서. > 내가 ArrayList에 더 많은 항목을 추가 Home_Fragment가, 지금은 동적으로 내 ViewPager Adapter에 사람들을 추가 할 내에서 onLoadMoreListener를 설정, - 지금, 나는 나의 ViewPager Adapter

에 연결된 FullscreenView Activity에서 이러한 전달하고 이것을 어떻게 할 수 있습니까?

Home_Fragment

class ReadHTML extends AsyncTask<String, Integer, String> { 

    List list; 

    @Override 
    protected String doInBackground(String... params) { 
      try { 

       Document document = Jsoup.connect(params[0]).get(); 
       Element wall = document.select("ul.postul").first(); 
       //Log.i("LIST ", wall.toString()); 
       Elements url = wall.getElementsByAttribute("src"); 
       list = url.eachAttr("src"); 

       for (int i = 0; i < list.size(); i++) { 
        wallpaperNumber++; 
        String string = //Dummy 
        String septemp[] = //Dummy2 
        sep[1] = "http://" + string 
        wallpapersModelArrayList.add(new WallpapersModel(
          string,/// 
          sep[1], 
          "jpg", 
          wallpaperNumber 
        )); 
       } 
      }catch (Exception e){} 
      return null; 
    } 

전체 화면 활동

setContentView(R.layout.fullscreen_activity_view); 

    toolbar = findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    viewPager = findViewById(R.id.view_pager); 

    arrayList = getIntent().getParcelableArrayListExtra("array"); 
    final int pos = getIntent().getIntExtra("position", 0); 
    fullScreenSwipeAdapter = new 
    FullScreenSwipeAdapter(FullWallpaperViewActivity.this, arrayList); 

    viewPager.setAdapter(fullScreenSwipeAdapter); 
    viewPager.setCurrentItem(pos); 
    viewPager.setOnTouchListener(new View.OnTouchListener(){} 
    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {} 

ViewPager 어댑터

public FullScreenSwipeAdapter(Activity activity, ArrayList<WallpapersModel> arrayList) { 
    this.activity = activity; 
    this.arrayList = arrayList; 
    Fresco.initialize(activity); 
} 

@Override 
public int getCount() { 
    return this.arrayList.size(); 
} 

@Override 
public boolean isViewFromObject(View view, Object object) { 
    return view == (object); 
} 

@Override 
public Object instantiateItem(ViewGroup container, int position) { 

    layoutInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View v = layoutInflater.inflate(R.layout.fullwallpaper_view_layout, container, false); 

    draweeView = v.findViewById(R.id.full_image_view); 
    draweeView.setImageURI(arrayList.get(position).getWallpaperFullURL()); 

    container.addView(v); 

    return v; 


} 

@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
    container.removeView((CoordinatorLayout)object); 
} 

답변

2

새 항목을 추가하기 위해 ArrayList 후 바로 사용하여 변경의 어댑터를 통보 -

arrayAdapter.notifyDataSetChanged(); 
+0

public class Activity() extends AppCompatActivity { CustomArrayAdapter mArrayAdapter; ViewPager mViewPager; public void updateViewpager(){ mArrayAdapter = new ArrayAdapter(context, itemList); // old items with new items mViewPager.setAdapter(mArrayAdapter); mArrayAdapter.notifyDataSetChanged(); } ... 

는 희망이 도움이

이 작동하지 않는 것 :( –

+0

을 @ YuganshTyagi이 코드로 질문을 업데이트 할 수 있습니까 !! 감사 –

0

먼저 당신의 ArrayAdapter와의 새로운 인스턴스를 만들고이 같은 모든 새로운 항목을 설정 : 나는하지만이 시도

관련 문제