2016-04-24 9 views
-2

hoffen, dass Sie schön und gut,Loop in Arraylist mit viewPager in android

i die follwoing Funktion haben, die erhalten und Arraylist genannt Studenten:

public void DisplyOnTextView(List<Student> students) 
     { 

       textView.setText(students.get(i).getDes()); 
       new LoadImage().execute(students.get(i).getUrl().replaceAll("\\s+", "")); 
     } 

in meinem Layout i Textview und Image haben, wie in der vorherige code, jetzt möchte ich einen viewPager verwenden, um alle studenten zu durchlaufen! was bedeutet, wenn ich den Bildschirm schiebe Ich möchte die Informationen des nächsten Studenten in der Textansicht und der Bildansicht zeigen, ich habe viele Beispiele von ViewPager versucht, aber sie sind sehr kompliziert und sie haben mein Problem nicht gelöst! also jede einfache Lösung?!

+0

Hallo Hast du es verstanden? Warum ignorierst du die Antwort ohne ein Feedback zu geben? Wenn du etwas nicht verstanden hast, kannst du frei fragen, ich bin bereit zu helfen. –

Antwort

0

Sie zu informieren, diese Frage als Zu breit weil guten Antworten für dieses Format zu lang wären in Betracht gezogen wird, Eventhough ich es bin beantworten Ihnen klar zu machen, weil ich einfaches Beispiel, das ich vorher versucht hatte.

Es ist das erste Beispiel, das ich die ViewPager zu üben gemacht habe und ich habe es einfach wie möglich zu Ihnen diese Antwort verstehen, durch viele wesentliche Teile entfernt werden, hoffen, dass Sie das verstehen, aber ich schlage vor, Sie here auch zu sehen stark zu verstehen viewpager, Laden Sie das Beispiel und sehen auch

sagen, Sie haben Modell namens Schüler mit .toBundle und .toModel Verfahren wie

public class Model {  
    public static final String MODEL_ID_KEY = "modelIdKey"; 
    public static final String MODEL_TITLE_KEY = "modelTitleKey"; 

    private int userId; 
    private int id; 
    private String title; 
    private String body; 

    public int getUserId() { 
     return userId; 
    } 

    public void setUserId(int userId) { 
     this.userId = userId; 
    } 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getTitle() { 
     return title; 
    } 

    public void setTitle(String title) { 
     this.title = title; 
    } 


    public Bundle toBundle(){ 
     Bundle bundle = new Bundle(); 
     bundle.putInt(MODEL_ID_KEY, this.getId()); 
     bundle.putString(MODEL_TITLE_KEY, this.getTitle());; 
     return bundle; 

    } 

    public Model toModel (Bundle bundle){ 

     Model model = new Model(); 
     model.setId(bundle.getInt(MODEL_ID_KEY)); 
     model.setTitle(bundle.getString(MODEL_TITLE_KEY)); 
     return model; 

    } 
} 

einfach haben Sie eine XML enthält ViewPager

<android.support.v4.view.ViewPager 
    android:id="@+id/myViewPager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 

Sie haben ScreenSlidePagerAdapter die FragmentStatePagerAdapter

private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter { 

    public ScreenSlidePagerAdapter(FragmentManager fm) { 
     super(fm); 

    } 

    @Override 
    public Fragment getItem(int position) { 

     ItemFragment fragment = new ItemFragment(); 
     fragment.setArguments(modelList.get(position).toBundle()); 
     return fragment; 
    } 

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

} 

erstreckt Wo ItemFragment ähnliche Dann setzen

public class ItemFragment extends Fragment { 
    Model model; 

    TextView tvId; 
    TextView tvTitle; 



    public ItemFragment() { 
    } 


    @Override 
    public void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     Bundle bundle = this.getArguments(); 
     if(bundle !=null) { 
      model = new Model(); 
      this.model = model.toModel(bundle); 
     } 



    } 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.item_fragment,container,false); 

     tvId = (TextView) view.findViewById(R.id.tvId); 
     tvTitle = (TextView) view.findViewById(R.id.tvTitle); 


     if(this.model !=null) { 
      tvId.setText(String.valueOf(model.getId())); 
      tvTitle.setText(model.getTitle()); 
     } 

     return view; 
    } 
} 

sieht nur die adapter in MainActivity

pagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager()); 
    myPager.setAdapter(pagerAdapter);