0

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

4

1 に答える 1

0

私の場合、問題が見つかりました。私のレイアウト xml ビューの 1 つは、2.2 で実行されている場合は問題ありませんが、3.0 では問題がないことが判明しました。これを指すエラーがまったくなかったので、これを見つけるのに少し時間がかかりました。そのため、類似の問題が発生している場合は、レイアウト xml を調べて、アプリ内で望ましくない動作を引き起こしているものがないかどうかを確認してください。

于 2011-02-06T20:24:22.543 に答える