在数据库驱动的 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