android中的标签布局

时间:2014-02-19 12:09:59

标签: android youtube-api android-tabhost android-youtube-api

这是我的布局文件:

<?xml version="1.0" encoding="utf-8"?><TabHost xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/tabHost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/panel_start">

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="5dp">

    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_weight="1">


                <RelativeLayout
                    android:id="@+id/tab1"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="horizontal" >

                            <android.support.v4.view.ViewPager
                                android:id="@+id/pager"
                                android:layout_width="match_parent"
                                android:layout_height="match_parent" />

                </RelativeLayout>               

                <RelativeLayout android:id="@+id/tab2"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="horizontal" >

                          <com.google.android.youtube.player.YouTubePlayerView
                              android:id="@+id/player"
                              android:layout_width="match_parent"
                              android:layout_height="match_parent" />


                </RelativeLayout>

                <RelativeLayout android:id="@+id/tab3"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="horizontal" >

                    <!-- In this tab I don't want to specify
                                                 a layout, but call an intent for an
                                                 other activity to start-->

                </RelativeLayout>



</FrameLayout> 

    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:layout_marginBottom="-4dp"/>

</LinearLayout>

这是我上面布局的代码:

public class MultimediaArticle extends YouTubeFailureRecoveryActivity implements
YouTubePlayer.OnFullscreenListener {

    @Override
public void onCreate(Bundle savedInstanceState){

    super.onCreate(savedInstanceState);
    setContentView(R.layout.multimedia);



    viewPager = (ViewPager) findViewById(R.id.pager);   

    playerView = (YouTubePlayerView) findViewById(R.id.player); 

        doLayout();





    Intent i = getIntent();
    int position = i.getIntExtra("position", 0);

    adapter = new FullScreenImageAdapter(this,monument.getLocalPhotosUrl());

    viewPager.setAdapter(adapter);



    TabHost tabs = (TabHost)findViewById(R.id.tabHost);

    tabs.setup();


    TabHost.TabSpec spec1 = tabs.newTabSpec("tag1");
    spec1.setContent(R.id.tab1);
    spec1.setIndicator("Photos",getResources().getDrawable(R.drawable.photos_tab_selector));
    tabs.addTab(spec1);

    TabHost.TabSpec spec2 = tabs.newTabSpec("tag2");
    spec2.setContent(R.id.tab2);
    spec2.setIndicator("Videos");
    tabs.addTab(spec2);

    TabHost.TabSpec spec3 = tabs.newTabSpec("tag3");
    spec3.setIndicator("360° Videos", getResources().getDrawable(R.drawable.photos_t_tab_selector));
    Intent intent = new Intent(MyApplication.getAppContext(), ThreeSixtyPhotosActivity.class);
    intent.putExtra("monument", monument);
    spec3.setContent(intent);
    tabs.addTab(spec3);


}

但我得到了这个例外:

  

java.lang.IllegalStateException:您是否忘记调用'public void setup(LocalActivityManager activityGroup)'?

为了克服这个问题,我该怎么办?我无法扩展TabActivity或ActivityGroup 因为我已经在扩展YouTubeFailureRecoveryActivity。非常感谢你的帮助,谢谢你的时间

1 个答案:

答案 0 :(得分:0)

通常有解决方法,但是: 如果必须扩展两个类,首先,构建一个CustomExtendingActivity作为基本活动,然后使用CusonExtendingExtendingActivity类扩展CustomExtendingActivity。

考虑这个示例场景:

您希望在Java中扩展RoboActivity和ActionbarSherlock活动。

与ActionBarSherlock一起使用的RoboGuice类

RoboGuice和ActionBarSherlock都需要活动和片段的自定义基类,并且由于Java不允许钻石继承,因此该项目提供了自定义RoboGuice类,可以从ActionBarSherlock扩展相应的类。

您可以在此处浏览完整代码:

https://github.com/rtyley/roboguice-sherlock