2014-12-04 78 views
0

我試圖在片段女巫內添加一個列表視圖也是一個tabhost內。該應用程序不會崩潰或任何東西,但列表視圖不顯示任何內容。 這裏是我的代碼:列表視圖內Tabpager片段不顯示

類的tabPager

public class TabPagerAdapter extends FragmentPagerAdapter { 

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

    @Override 
    public Fragment getItem(int index) { 

     switch (index) { 
      case 0: 
       return new FragmentHome(); 
      case 1: 
       return new FragmentBadges(); 
      case 2: 
       return new FragmentBenefits(); 
     } 

     return null; 
    } 

以下是我想要的ListView中的片段:

public class FragmentBadges extends Fragment { 

      @Override 
      public View onCreateView(LayoutInflater inflater, ViewGroup container, 
            Bundle savedInstanceState) { 

       View rootView = inflater.inflate(R.layout.fragment_badges_list, null); 

       BadgesListAdapter adapter = new BadgesListAdapter(this.getActivity(), getCurrentBadges()); 
       ListView badgeslist = (ListView) rootView.findViewById(R.id.badges_list); 
       badgeslist.setAdapter(adapter); 
       badgeslist.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
        @Override 
        public void onItemClick(AdapterView<?> parent, View view, 
              int position, long id) { 
         //TODO do some 
        } 
       }); 

       return rootView; 
      } 

而以下是適配器:

public class BadgesListAdapter extends ArrayAdapter<String> { 
    private final Activity context; 
    private List<Badge> badges; 

    public BadgesListAdapter(Activity context, List<Badge> badges) { 
     super(context, R.layout.fragment_badges_listrow); 
     this.context = context; 
     this.badges = badges; 
    } 

    @Override 
    public View getView(int position, View view, ViewGroup parent) { 
     LayoutInflater inflater = context.getLayoutInflater(); 
     View rowView= inflater.inflate(R.layout.fragment_badges_listrow, null, true); 

     TextView txtTitle = (TextView) rowView.findViewById(R.id.text); 

     ImageView imageView = (ImageView) rowView.findViewById(R.id.img); 

     txtTitle.setText(badges.get(position).getName()); 

     imageView.setImageResource(badges.get(position).getDrawableValue()); 

     return rowView; 
    } 

在調試的時候我發現了那個在badgeListAdap裏面的getView方法ter從未被稱爲。 我有這個相同的代碼爲另一個應用程序,但沒有tabpager,並在那裏它一切正常...

回答

0

檢查getCurrentBadges()方法不返回空列表。如果是這樣,那麼在ListView中沒有數據顯示。

+1

已經檢查工作,它有足夠的數據來顯示的。 – 2014-12-04 21:06:52

+0

所以也許嘗試在'BadgesListAdapter'中調用'super(context,R.layout.fragment_badges_listrow,badges.toArray())''ArrayAdapter(Context context,int resource,T [] objects)'構造函數來提供數據。構造函數。 – 2014-12-04 21:10:26

+2

我改變了所有的構造函數,但getView()方法從來沒有調用過。 – 2014-12-04 21:44:26