如何在标签活动中添加Listview?

时间:2012-03-23 10:16:09

标签: android listactivity tabactivity

我有一个“SubjectTabActivity”,我需要在此活动上显示listview 但是当我想实现ListActivity时,它不会显示listActivity 我有两个(addchapter,addsubject)xml文件与“SubjectTabActivity”。我需要 在相应的xml文件中显示我的数据库项目列表视图。但我不明白 怎么做?
如何在TabActivity中添加Listactivity? 请给我任何参考或代码 在此先感谢..
这是我的参考代码。

public class MasterMainActivity extends TabActivity 
{
LayoutInflater layoutInflater = null;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.master);
     Intent intent=getIntent();
     setResult(RESULT_OK, intent);
        layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        TabHost tabHost = getTabHost();


        TabHost.TabSpec tab1spec = tabHost.newTabSpec("tabOneSpec");        
        ImageView imgView = new ImageView(this);
        imgView.setBackgroundResource(R.drawable.subject);
        tab1spec.setIndicator("Subject", imgView.getBackground());
        tab1spec.setContent(new TabContentLayout());

        TabHost.TabSpec tab2spec = tabHost.newTabSpec("tabTwoSpec");
        tab2spec.setContent(new TabContentLayout());
        ImageView imgView1 = new ImageView(this);
        imgView1.setBackgroundResource(R.drawable.chapter);
        tab2spec.setIndicator("Chapter", imgView1.getBackground());   
        tabHost.addTab(tab1spec);
        tabHost.addTab(tab2spec);          
      }
            private class TabContentLayout implements TabHost.TabContentFactory {
        @Override
        public View createTabContent(String tag) {
            View view = null;
            if(tag.equals("tabOneSpec"))
            {
                try
                {
                    //static final String[] FRUITS = new String[] { "Apple", "Avocado", "Banana",
                    //  "Blueberry", "Coconut", "Durian", "Guava", "Kiwifruit",
                        //"Jackfruit", "Mango", "Olive", "Pear", "Sugar-apple" };

                    view = (LinearLayout) layoutInflater.inflate(R.layout.subjecttabview, null);
                    //setListAdapter(new ArrayAdapter<String>(this, R.layout.subjecttabview,FRUITS));

                }
                catch(Exception e)
                {
                    e.printStackTrace();
                }                   

            }
            if(tag.equals("tabTwoSpec"))
            {
                try
                {

                    view = (LinearLayout) layoutInflater.inflate(R.layout.chaptertabview, null);    

                }
                catch(Exception e)
                {
                    e.printStackTrace();
                }
            }               
            return view;
        }
    }
  

如何在此TabActivity中添加ListActivity

3 个答案:

答案 0 :(得分:6)

通常使用制表符创建活动时 选项卡内容很容易有单独的活动 但是,当这些活动需要时,事情会变得棘手  彼此互动。

所以解决方案是创建一个带有视图的tabactivity (而不是活动)作为选项卡内容。 要创建TAB,我们需要遵循以下几个步骤:

  1. 创建tabHost并设置其参数
  2. 创建tabWidget,可点击标签的容器
  3. 创建一个frameLayout,以保存与每个标签相关联的视图
  4. 使用tabSpec类
  5. 创建每个选项卡

    并查看这些链接,可以帮到你

    http://joshclemm.com/blog/?p=59

    http://www.edumobile.org/android/android-beginner-tutorials/tab-control/

    http://www.pocketmagic.net/?p=1132

答案 1 :(得分:2)

你可以通过编程方式扩展ListView或创建并将其添加到视图(LinearLayout),这似乎是你的根。然后只需将适配器添加到ListView。

答案 2 :(得分:1)

在XML布局中取ListView

然后通过TabActivity中的ID找到它:

ListView listView = (ListView) findViewById(R.id.listView1);