Java tabpager片段中的Listview未显示
我试图在一个片段中添加一个listview,这个片段也在一个tabhost中。应用程序没有崩溃或发生任何事情,但列表视图没有显示任何内容。 这是我的密码: 为tabPager创建一个类Java tabpager片段中的Listview未显示,java,android,listview,layout,android-fragments,Java,Android,Listview,Layout,Android Fragments,我试图在一个片段中添加一个listview,这个片段也在一个tabhost中。应用程序没有崩溃或发生任何事情,但列表视图没有显示任何内容。 这是我的密码: 为tabPager创建一个类 public class TabPagerAdapter extends FragmentPagerAdapter { public TabPagerAdapter(FragmentManager fm) { super(fm); } @Override pub
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;
}
调试时,我发现badgesListAdapter中的getView方法从未被调用。
我为另一个应用程序编写了相同的代码,但没有tabpager,在那里它可以完美地工作…检查getCurrentBadges方法是否返回空列表。如果是这样的话,ListView中就没有数据显示。我可以通过在FragmentBadges中输入ListFragment来实现这一点,遵循本教程,所以可以尝试使用ArrayAdapterContext、int resource、T[]对象构造函数,通过调用supercontext、R.layout.fragment\u badges\u listrow,BadgesListAdapter构造函数中的badges.toArray。我将所有内容都更改为mach该构造函数,但它的getView方法也不会调用。