TabHost问题转移到Honeycomb

时间:2011-02-02 20:55:11

标签: android android-tabhost android-2.2-froyo tabview

在数据库驱动的tabhost上工作我遇到了试图转移到Honycomb的问题。

我有这样的事情:

        Cursor c = db.getAll();
    if ( c.moveToFirst() ) {       
        do {
                 // Log tab name
    Log.d("(Honycomb)", "TabSpec : " + c.getString(2));
                 // Set new tabspec ID
    TabSpec Tab = tabHost.newTabSpec( "tid" + c.getString(1) ) ;
            if( c.getString(2).equals("abc")) {
          Tab.setIndicator( c.getString(2), context.getResources().getDrawable(R.anim.icon1) ) ;
            } else if( c.getString(2).equals("bcd")) {
                Tab.setIndicator( c.getString(2), context.getResources().getDrawable(R.anim.icon2) ) ;
            }
            Intent intent = new Intent() ;
            intent.putExtra( "CATORDER", c.getString(1) );
            intent.setClass(context, Mytab.class) ;
            Tab.setContent( intent ) ;
            tabHost.addTab(Tab) ;

        } while ( c.moveToNext() ) ;

    } else {

             Toast.makeText(context, "There is nothing available.", 
             Toast.LENGTH_LONG).show();

    }
    tabHost.setOnTabChangedListener(OnTabChangeListener);
    tabHost.getTabWidget().setCurrentTab(0);

db.getAll()导致>从db回来的2条记录。在LOGCAT中看到c.getString(2)> 2次 - 按照预期的值,但是在屏幕上查看tabHost我确实显示了所有选项卡但是只显示了带有字符串的第一个选项卡(但是)没有任何可行的操作,并且在一段时间后返回应用程序的开始。

如果我从Honycomb切换到2.2,它会显示所有预期的内容吗?

此外,MyTab正在使用log.d(),而且我只能在第一次找到显示,如果在3.0中运行但在2.2中运行多次(如预期的那样)。

看起来有些事情发生了变化(或者我为2.2做了一些好事但没有在3.0中做过)但到目前为止我找不到我做错了什么。有什么想法吗?

如果我在LOGCAT中有错误告诉我也会发布这些内容但是它们似乎不在那里(再次切换到2.2让这个运行正常并且c.getString(2)不仅显示> x次但也正确地给出了标签。

此致 RVE

1 个答案:

答案 0 :(得分:0)

我发现问题在于我的情况。事实证明,我的一个布局xml视图在2.2中运行时有一些不错,但在3.0中运行不正常。花了一些时间才找到这个,因为我根本没有指出这个错误。 因此,如果有人出现类似问题,请尝试查看布局xml,看看是否存在导致应用内部出现意外行为的问题。