0

처음에는 내 생각에 탭으로 된 활동을 사용하여 아이들의 목록을 만드는 것입니다. 1- 부모에게는 하나 이상의 자식이 있습니다. 2- volley 사용하기 탭 활동을 사용하여 로직을 전달하여 각 하위에 대해 새 단편을 생성하는 방법을 설명합니다. 안드로이드 탭 활동 발리에 의해 새로운 조각 추가

는 당신이 아래에있는 내 활동을 볼 수있는 시도하고 그 후에 넌 내 어댑터를 참조하십시오

private ViewPager mViewPager = null; 
private ChildAdapter pagerAdapter = null; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_child); 

    // Set up the ViewPager with the sections adapter. 
    pagerAdapter = new ChildAdapter(); 
    mViewPager = (ViewPager) findViewById(R.id.view_pager); 
    mViewPager.setAdapter(pagerAdapter); 

    LayoutInflater inflater = context.getLayoutInflater(); 
    FrameLayout v0 = (FrameLayout) inflater.inflate(R.layout.fragment_profile, null); 
    pagerAdapter.addView(v0, 0); 

} 

//----------------------------------------------------------------------------- 
// Here's what the app should do to add a view to the ViewPager. 
public void addView(View newPage) { 
    int pageIndex = pagerAdapter.addView(newPage); 
    // You might want to make "newPage" the currently displayed page: 
    mViewPager.setCurrentItem(pageIndex, true); 
} 

//----------------------------------------------------------------------------- 
// Here's what the app should do to remove a view from the ViewPager. 
public void removeView(View defunctPage) { 
    int pageIndex = pagerAdapter.removeView(mViewPager, defunctPage); 
    // You might want to choose what page to display, if the current page was "defunctPage". 
    if (pageIndex == pagerAdapter.getCount()) 
     pageIndex--; 
    mViewPager.setCurrentItem(pageIndex); 
} 

//----------------------------------------------------------------------------- 
// Here's what the app should do to get the currently displayed page. 
public View getCurrentPage() { 
    return pagerAdapter.getView(mViewPager.getCurrentItem()); 
} 

//----------------------------------------------------------------------------- 
// Here's what the app should do to set the currently displayed page. "pageToShow" must 
// currently be in the adapter, or this will crash. 
public void setCurrentPage(View pageToShow) { 
    mViewPager.setCurrentItem(pagerAdapter.getItemPosition(pageToShow), true); 
} 

}

//----------------------------------------------------------------------------- 
//----------------------------------------------------------------------------- 
//----------------------------------------------------------------------------- 

답변

0
 Adapter 
     public class ChildAdapter extends PagerAdapter 
{ 
    // This holds all the currently displayable views, in order from left to right. 
    private ArrayList<View> views = new ArrayList<View>(); 

    //----------------------------------------------------------------------------- 
    // Used by ViewPager. "Object" represents the page; tell the ViewPager where the 
    // page should be displayed, from left-to-right. If the page no longer exists, 
    // return POSITION_NONE. 
    @Override 
    public int getItemPosition (Object object) 
    { 
     int index = views.indexOf (object); 
     if (index == -1) 
      return POSITION_NONE; 
     else 
      return index; 
    } 

    //----------------------------------------------------------------------------- 
    // Used by ViewPager. Called when ViewPager needs a page to display; it is our job 
    // to add the page to the container, which is normally the ViewPager itself. Since 
    // all our pages are persistent, we simply retrieve it from our "views" ArrayList. 
    @Override 
    public Object instantiateItem (ViewGroup container, int position) 
    { 
     View v = views.get (position); 
     container.addView (v); 
     return v; 
    } 

    //----------------------------------------------------------------------------- 
    // Used by ViewPager. Called when ViewPager no longer needs a page to display; it 
    // is our job to remove the page from the container, which is normally the 
    // ViewPager itself. Since all our pages are persistent, we do nothing to the 
    // contents of our "views" ArrayList. 
    @Override 
    public void destroyItem (ViewGroup container, int position, Object object) 
    { 
     container.removeView (views.get (position)); 
    } 

    //----------------------------------------------------------------------------- 
    // Used by ViewPager; can be used by app as well. 
    // Returns the total number of pages that the ViewPage can display. This must 
    // never be 0. 
    @Override 
    public int getCount() 
    { 
     return views.size(); 
    } 

    //----------------------------------------------------------------------------- 
    // Used by ViewPager. 
    @Override 
    public boolean isViewFromObject (View view, Object object) 
    { 
     return view == object; 
    } 

    //----------------------------------------------------------------------------- 
    // Add "view" to right end of "views". 
    // Returns the position of the new view. 
    // The app should call this to add pages; not used by ViewPager. 
public int addView (View v) 
{ 
    return addView (v, views.size()); 
} 

//----------------------------------------------------------------------------- 
// Add "view" at "position" to "views". 
// Returns position of new view. 
// The app should call this to add pages; not used by ViewPager. 
public int addView (View v, int position) 
{ 
    views.add (position, v); 
    return position; 
} 

//----------------------------------------------------------------------------- 
// Removes "view" from "views". 
// Returns position of removed view. 
// The app should call this to remove pages; not used by ViewPager. 
public int removeView (ViewPager pager, View v) 
{ 
    return removeView (pager, views.indexOf (v)); 
} 

//----------------------------------------------------------------------------- 
// Removes the "view" at "position" from "views". 
// Retuns position of removed view. 
// The app should call this to remove pages; not used by ViewPager. 
public int removeView (ViewPager pager, int position) 
{ 
    // ViewPager doesn't have a delete method; the closest is to set the adapter 
    // again. When doing so, it deletes all its views. Then we can delete the view 
    // from from the adapter and finally set the adapter to the pager again. Note 
    // that we set the adapter to null before removing the view from "views" - that's 
    // because while ViewPager deletes all its views, it will call destroyItem which 
    // will in turn cause a null pointer ref. 
    pager.setAdapter (null); 
    views.remove (position); 
    pager.setAdapter (this); 

    return position; 
} 

//----------------------------------------------------------------------------- 
// Returns the "view" at "position". 
// The app should call this to retrieve a view; not used by ViewPager. 
public View getView (int position) 
{ 
    return views.get (position); 
} 

// Other relevant methods: 

// finishUpdate - called by the ViewPager - we don't care about what pages the 
// pager is displaying so we don't use this method. 

}