设置初始寻呼机项目

时间:2015-07-21 08:21:15

标签: android android-viewpager

我正在编写一个寻呼机片段,如下所示:

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,其中包含有关注释的详细信息

1 个答案:

答案 0 :(得分:0)

发现我的问题。 在CommentListFragment中的onItemClicked函数中,我没有将UUID commentID作为额外的意图传递!! 我上面的UUID总是为NULL! 谢谢大家