无法在TabHost的Tab中显示ListView

时间:2012-12-24 07:20:32

标签: android tabs android-tabhost

我创建了以下应用程序。我想在TabHost的Tab中显示ListView。运行应用程序后,我没有在Tab上找到任何ListItem。我重写了适配器并实现了getView,然后是setAdapter。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    myTabhost=this.getTabHost();
    LayoutInflater.from(this).inflate(R.layout.activity_main,myTabhost.getTabContentView(),true);
    myTabhost.addTab(myTabhost.newTabSpec("tab1").setIndicator("tab1",getResources().getDrawable(R.drawable.calendar)).setContent(R.id.tab1));
    myTabhost.addTab(myTabhost.newTabSpec("tab2").setIndicator("tab2",getResources().getDrawable(R.drawable.ic_launcher)).setContent(R.id.tab2));
    myTabhost.addTab(myTabhost.newTabSpec("tab3").setIndicator("tab3").setContent(R.id.tab3));
    listView1=(ListView) findViewById(R.id.listView1);

    data=new ArrayList<Map<String,Object>>();
    Map<String,Object> item;
    item=new HashMap<String,Object>();
    item.put("date", "2012-12-25");
    item.put("item","Christmas");
    data.add(item);

    item.put("date", "2013-1-1");
    item.put("item", "new year");
    data.add(item);

    SimpleAdapter adapter=new SimpleAdapter(this, data, android.R.layout.simple_expandable_list_item_2, new String[]{"date","item"}, new int[]{R.id.textView1,R.id.textView2});
    listView1.setAdapter(adapter);
}
你帮我找到了问题吗?

2 个答案:

答案 0 :(得分:1)

每次你必须使用新的哈希映射对象在哈希映射的帮助下在arraylist中存储数据

 Map<String,Object> item = new HashMap<String,Object>();
      item.put("date", "2012-12-25");
      item.put("item","Christmas");
      data.add(item);

 Map<String,Object> item1 = new HashMap<String,Object>();
      item1.put("date", "2013-1-1");
      item1.put("item", "new year");
      data.add(item1);

答案 1 :(得分:0)

TabActivity类在API级别13中已弃用。新应用程序应使用Fragments而不是此类。