0

爲什麼我的尋呼機適配器不想從我的第一個項目開始。當我啓動ContainerIspiti活動並顯示第一個片段時,視圖傳呼機不會顯示正確的元素。首先,視圖分頁器顯示第二個元素,我不能滑動到我的數組列表的第一個元素。有沒有人有解決方案。 這裏是我的ConainterIspitiAndroid中的Viewpager適配器

public class ContainerIspiti extends FragmentActivity{ 

private Button next, previous, odgovori, informacije; 
private TextView textPitanja, brojPitanja; 
private ViewPager pager; 
private PagerAdapter mPagerAdapter; 
public static ArrayList<Pitanja> getAllPitanja; 
public static ArrayList<Pitanje_has_Slika> getAllImages; 
private Intent intent; 
private DBTools db = new DBTools(this); 
private ProgressDialog pDialog; 
private int broj; 

@Override 
protected void onCreate(Bundle arg0) { 
    super.onCreate(arg0); 
    setContentView(R.layout.activity_container_pitanja); 
    Bundle bundle = new Bundle(); 
    intent = getIntent(); 
    Dohvati d = new Dohvati(); 
    d.execute(); 
     textPitanja = (TextView) findViewById(R.id.kategorijaTextViewPitanjeActivity); 
     brojPitanja = (TextView) findViewById(R.id.brojPitanjaTextViewPitanjeActivity); 
     pager = (ViewPager) findViewById(R.id.pagerPitanja); 
     pager.setCurrentItem(0, true); 
     bundle.putString("NAZIV_KATEGORIJE", intent.getStringExtra("NAZIV_KATEGORIJE")); 
    } 


private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter { 

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

    @Override 
    public Fragment getItem(int position) { 
     Log.i("Position je sljedeci ", String.valueOf(position)); 
     return PitanjaFragment.create(position); 
    } 

    @Override 
    public int getCount() { 
     Log.i("Velicina polja je ", String.valueOf(getAllPitanja.size())); 
     Log.i("Prvi eleemnt liste je", getAllPitanja.get(0).getTextPitanja()); 
     return getAllPitanja.size(); 
    } 

} 

private class Dohvati extends AsyncTask<String, String, String>{ 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(ContainerIspiti.this); 
     pDialog.setCancelable(false); 
     pDialog.setIndeterminate(false); 
     pDialog.show(); 
    } 

    @Override 
    protected String doInBackground(String... params) { 
     getAllPitanja = db 
       .getAllPitanja(intent.getStringExtra("id_kategorije")); 
     Log.i("Ovoliki je get all pitanja", String.valueOf(getAllPitanja.size())); 
     getAllImages = db.getAllPitanjaImages(); 
     Log.i("ovoliko je slika", String.valueOf(getAllImages.size())); 
     return null; 
    } 
    @Override 
    protected void onPostExecute(String result) { 
     pDialog.dismiss(); 
     mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager()); 
     pager.setAdapter(mPagerAdapter); 
     pager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener(){ 
      @Override 
      public void onPageSelected(int position) { 
       invalidateOptionsMenu(); 
       brojPitanja.setText(String.valueOf(position) + "/" + String.valueOf(getAllPitanja.size())); 
       broj = position; 
      } 
     }); 
     textPitanja.setText(intent.getStringExtra("NAZIV_KATEGORIJE")); 
     brojPitanja.setText(String.valueOf(broj) + "/" + getAllPitanja.size()); 
    } 

} 

}

代碼

,這裏是我的片段活動

public class PitanjaFragment extends Fragment implements API{ 

public static final String ARG_PAGE = "page"; 

private int broj; 
private ImageView image; 
private TextView textPitanja; 
private String uri; 
private View view; 
private ListView listView; 
private Typeface custom_font; 
private boolean odgovoreno, tocno; 
private ArrayList<Odgovor> odgovorList; 
private PitanjaAdapter adapter; 
private DBTools db; 
private List<Integer> kliknuti; 
private HashMap<Integer, List<Integer>> odgBrojPitanja; 

public static PitanjaFragment create(int pageNumber) { 
    PitanjaFragment fragment = new PitanjaFragment(); 
    Bundle args = new Bundle(); 
    args.putInt(ARG_PAGE, pageNumber); 
    fragment.setArguments(args); 
    return fragment; 
} 

public PitanjaFragment() { 

} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    broj = getArguments().getInt(ARG_PAGE); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, 
     @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    View view = inflater.inflate(R.layout.fragment_pitanja, container, false); 
    image = (ImageView) view.findViewById(R.id.imageSlikaImageView); 
    image.setOnClickListener(this); 
    textPitanja = (TextView) view.findViewById(R.id.textPitanjaTextViewPitanjaActivity); 
    db = new DBTools(getActivity()); 
    listView = (ListView) view.findViewById(R.id.listView); 
    updateDisplay((broj+1)); 
    return view; 
} 

public void updateDisplay(int z) { 

    odgovoreno = false; 
    tocno = true; 
    textPitanja.setText(stripHtml(String.valueOf(ContainerIspiti.getAllPitanja.get(z).getTextPitanja()))); 
    image.setImageBitmap(null); 
    //info = ContainerIspiti.getAllPitanja.get(z).getInfo(); 

    Log.d("Postoji", ContainerIspiti.getAllImages.get(z).getNazivSlike() + ", "); 

    for (int j = 0; j < ContainerIspiti.getAllImages.size(); j++) { 
     if (ContainerIspiti.getAllImages.get(j).getIdPitanja() == ContainerIspiti.getAllPitanja.get(z) 
       .getIdPitanja() 
       && ContainerIspiti.getAllImages.get(j).getNazivSlike() != null) { 
      Log.i("Id pitanja slike + idpitanja pitanja + idSlike", 
        ContainerIspiti.getAllImages.get(j).getIdPitanja() 
          + ", " 
          + String.valueOf(ContainerIspiti.getAllPitanja.get(z) 
            .getIdPitanja() 
            + ", " 
            + ContainerIspiti.getAllImages.get(j).getIdSlika())); 
      image.setVisibility(View.VISIBLE); 
      //povecalo.setImageResource(R.drawable.gumb_pretrazi); 
      //povecalo.setEnabled(true); 
      uri = PregledZnakova.PHOTOS_BASE_URL 
        + ContainerIspiti.getAllImages.get(j).getNazivSlike(); 
      int rounded_value = 40;  

      DisplayImageOptions options = new DisplayImageOptions.Builder().showImageForEmptyUri(R.drawable.placeholder).showStubImage(R.drawable.placeholder).cacheInMemory().cacheOnDisc().displayer(new RoundedBitmapDisplayer(rounded_value)).build(); 
      ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getActivity().getApplicationContext()).defaultDisplayImageOptions(options).build();    
      ImageLoader.getInstance().init(config); 
      ImageLoader.getInstance().displayImage(uri, image,options); 


      break; 
      // } 

     } else { 
      image.setVisibility(View.GONE); 
      //povecalo.setImageResource(R.drawable.gumb_pretrazi_neaktivno); 
      //povecalo.setEnabled(false); 
     } 
    } 

    odgovorList = db.getAllOdgovore(Integer.toString(ContainerIspiti.getAllPitanja.get(z) 
      .getIdPitanja())); 
    adapter = new PitanjaAdapter(getActivity(), 
      R.layout.pitanja_entry, odgovorList); 
    listView.setAdapter(adapter); 

    for (int i=0;i<ContainerIspiti.getAllPitanja.size();i++){ 
     if (ContainerIspiti.getAllPitanja.get(i).isTocno()){ 
      Log.i("Ovo pitanje je tocno", ContainerIspiti.getAllPitanja.get(i).getTextPitanja()); 
     } 
    } 

} 
@Override 
public int getItemBroj() { 
    return broj; 
} 

@Override 
public int getPosition() { 
    return broj; 
} 

@Override 
public void setPosition(int position) { 
    this.broj = position; 
} 

@Override 
public Fragment getFragment() { 
    return this; 
} 

} 

感謝您的時間和你的幫助。

回答

1

在你PitanjaFragment類的onCreateView()方法,替換:

updateDisplay((broj+1)); 

updateDisplay(broj); 

試試這個。它應該工作。

+0

@markokurt:試過這個?? – 2015-02-28 13:26:14

+0

是的,我試過了,還有它,非常感謝。我沒有看到我犯了瑣碎的錯誤。再次謝謝你:) – 2015-03-01 23:26:44

+0

不客氣! – 2015-03-02 03:29:33