2015-07-21 53 views
0

我写一个寻呼机片段如下:设置初始寻呼机项目

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentStatePagerAdapter; 
import android.support.v4.view.ViewPager; 
import java.util.ArrayList; 
import java.util.UUID; 

public class CommentPagerActivity extends FragmentActivity{ 
private ViewPager mViewPager; 
private ArrayList<Comment> mComments; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    mViewPager = new ViewPager(this); 
    mViewPager.setId(R.id.viewPager); 
    setContentView(mViewPager); 

    mComments = CommentLab.get(this).getCommentsArray(); //get commentArray`` 

    //setting up pagerAdapter 
    FragmentManager fm = getSupportFragmentManager(); 
    mViewPager.setAdapter(new FragmentStatePagerAdapter(fm) { 
     @Override 
     public Fragment getItem(int position) { 

      Comment comment = mComments.get(position); 
      return CommentFragment.newInstance(comment.getId()); 
     } 

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


    //ViewPager by default shows the first comment no matter where u click. 
    //to have it show the comment selected, do the following 
    UUID commentId = (UUID)getIntent().getSerializableExtra(CommentFragment.EXTRA_COMMENT_ID); 

    for(int i=0; i < mComments.size(); i++){ 
     if (mComments.get(i).getId().equals(commentId)){ 
      mViewPager.setCurrentItem(i); 
      break; 
     } 
    } 
} 

} 

的寻呼机的作品,但是当我点击列表中的项目(可以说最后一个项目),它总是初始化viewPager与我的第一个项目

arrayList(mComments)... 

什么可能是错的?

的应用主要有评论列表视图,当有人点击列表中的一个项目,它打开CommentsFragment有关评论

+0

只是一个猜测,但你告诉viewpager设置一个项目之前,它已被创建。尝试在onCreateView或onResume中设置项目,看看会发生什么。 – spacitron

回答

0

发现我的问题的详细信息。 在CommentListFragment的onItemClicked函数中,我没有将UUID commentID作为额外的意图传递给目标! 我上面的UUID总是NULL! 谢谢全部