在数据库驱动的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
答案 0 :(得分:0)
我发现问题在于我的情况。事实证明,我的一个布局xml视图在2.2中运行时有一些不错,但在3.0中运行不正常。花了一些时间才找到这个,因为我根本没有指出这个错误。 因此,如果有人出现类似问题,请尝试查看布局xml,看看是否存在导致应用内部出现意外行为的问题。