0

シンプルなタブホストをABSで動作させようとして髪を引っ張っています.Androidは、それらを「改善」しようとすると、物事がさらに複雑になるだけのようです. 私は自分のプロジェクトをタブに Fragemnts を使用するように変換することを検討していましたが、それは私の各タブで使用している複雑なレイアウトのために多くの作業を行うことができませんでした. 私は今、ただの普通の作業タブホストに落ち着きますw。働く腹筋バー。

package com.abs.tabs.fragments;

import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.Toast;

import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockActivity;

import com.actionbarsherlock.view.MenuItem;
import com.buhz.feeds.Buhdz;
import com.buhz.login.R;
import com.buhzhyve.localz.Localz;
import com.buhzhyve.trails.Trails;
import com.buhzhyve.trendz.Trendz;

public class FragmentTabs extends SherlockActivity {
    ActionBar actionBar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
         setTheme(SampleList.THEME); //Used for theme switching in samples
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tabs);


        actionBar=getSupportActionBar();

         Resources res = getResources(); // Resource object to get Drawables

            TabHost tabHost =(TabHost) findViewById(android.R.id.tabhost);  // The activity TabHost

            TabHost.TabSpec spec;  // Resusable TabSpec for each tab

            Intent intent;  // Reusable Intent for each tab

            // Do the same for the other tabs

            intent = new Intent().setClass(this, Buhdz.class);

            spec = tabHost.newTabSpec("Buhdz").setIndicator("Feeds",

                              res.getDrawable(R.drawable.buhdz_tab_icon))

                          .setContent(intent);

            tabHost.addTab(spec);

         // Do the same for the other tabs

            intent = new Intent().setClass(this, Localz.class);

            spec = tabHost.newTabSpec("Localz").setIndicator("Locals",

                              res.getDrawable(R.drawable.locals_tab_icon))

                          .setContent(intent);

            tabHost.addTab(spec);



            intent = new Intent().setClass(this, Trendz.class);

            spec = tabHost.newTabSpec("Trendz").setIndicator("Trends",

                              res.getDrawable(R.drawable.trends_tab_icon))

                          .setContent(intent);

            tabHost.addTab(spec);



            intent = new Intent().setClass(this, Localz.class);

            spec = tabHost.newTabSpec("convos").setIndicator("Convos",

                              res.getDrawable(R.drawable.convos_tab_icon))

                          .setContent(intent);

            tabHost.addTab(spec);

         // Create an Intent to launch an Activity for the tab (to be reused)

            intent = new Intent().setClass(this, Trails.class);

            // Initialize a TabSpec for each tab and add it to the TabHost

            spec = tabHost.newTabSpec("Trails").setIndicator("Trails",

                              res.getDrawable(R.drawable.trails_tab_icon))

                          .setContent(intent);

            tabHost.addTab(spec);
            tabHost.setCurrentTab(4);
    }

    @Override
    public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
        com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
        inflater.inflate(R.menu.activity_main, menu);
        return super.onCreateOptionsMenu(menu);
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.item1:
            return true;
        case R.id.subItem1:
            Toast.makeText(this, "Sub Menu item 1 tapped", Toast.LENGTH_SHORT).show();
            return true;
        case R.id.subItem2:
            Toast.makeText(this, "Sub Menu item 2 tapped", Toast.LENGTH_SHORT).show();
            return true;
        default:
            break;
        }
        return super.onOptionsItemSelected(item);
    }
}
4

1 に答える 1

0
  1. このライブラリを使用してください: https://github.com/JakeWharton/Android-ViewPagerIndicator 。このライブラリ内には、必要なタブを含むいくつかのサンプルがあり、sherlockactionbar で動作します。
  2. この質問にアクセスしてください: Actionbarsherlock + タブ + マルチフラグメント? .
  3. 困ったことがあれば聞いてください。
于 2013-01-29T13:36:13.537 に答える