我正在编写一个寻呼机片段,如下所示:
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 :(得分:0)
发现我的问题。 在CommentListFragment中的onItemClicked函数中,我没有将UUID commentID作为额外的意图传递!! 我上面的UUID总是为NULL! 谢谢大家