0

在数据库驱动的 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() 导致 > 2 条记录从 db 返回。在 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

4

1 回答 1

0

我发现我的情况有问题。事实证明,如果在 2.2 中运行,我的一个 Layout xml 视图可以正常运行,但在 3.0 中则不行。花了一些时间找到这个,因为我根本没有任何错误指向这个。因此,如果遇到类似问题,请尝试查看您的布局 xml,以查看是否存在导致您的应用程序内部出现不良行为的原因。

于 2011-02-06T20:24:22.543 回答