2015-07-21 51 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! 謝謝全部