如图 ,我想在点击"all songs"之后跳转到一个播放列表,但是不知道这儿怎么用TabHost才能在播放列表上也显示?我的TabHost所在的Activity的代码如下
/*package com.lxy.musicplayer.view;import com.lxy.musicplayer.R;import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Window;
import android.widget.TabHost;public class BuddleTabHostActivity extends TabActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost tab  = getTabHost();
// LayoutInflater.from(this).inflate(R.layout.tabhost_layout, tab.getTabContentView(),true);

super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.tabhost_layout);


addIntentActivity(tab, MainActivity.class, "所有歌曲");
addIntentActivity(tab, MainActivity.class, "网络歌曲");
addIntentActivity(tab, MainActivity.class, "我的设置");

tab.setCurrentTab(0);
}


private void addIntentActivity(TabHost tab,Class c,String title){
Intent intent = new Intent();
intent.setClass(this, c);

TabHost.TabSpec spec = tab.newTabSpec(title);
spec.setIndicator(title);
spec.setContent(intent);
tab.addTab(spec);

}
}
*/package com.lxy.musicplayer.view;import com.lxy.musicplayer.R;import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.Window;
import android.widget.TabHost;public class BuddleTabHostActivity extends TabActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.tabhost_layout);
//获得切换对象
TabHost tab=getTabHost();
addIntentActivity(tab, MainActivity.class,"local");
addIntentActivity(tab, PlayActivity.class,"favorite");
addIntentActivity(tab, PlayListActivity.class,"online");
addIntentActivity(tab, MainActivity.class,"setting");
//默认执行选项卡
tab.setCurrentTab(0);
}

public void addIntentActivity(TabHost tab,Class<?> c,String str){
Intent intent=new Intent();
intent.setClass(this, c);
//由切换对象获得选项卡
TabHost.TabSpec spec=tab.newTabSpec(str);
//设置选项卡信息
//跳转要显示的页面
spec.setIndicator(str);
spec.setContent(intent);
//添加选项卡
tab.addTab(spec);
}

}

解决方案 »

  1.   

    照以下的代码做,就能解决你的问题:
    ActivityStack.java
    private Stack<String> stack;@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (stack == null)
            stack = new Stack<String>();
        // start default activity
        push("FirstStackActivity", new Intent(this, Tab_SampleActivity.class));
    }@Override
    public void finishFromChild(Activity child) {
        pop();
    }@Override
    public void onBackPressed() {
        pop();
    }public void push(String id, Intent intent) {
        Window window = getLocalActivityManager().startActivity(id, intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
        if (window != null) {
            stack.push(id);
            setContentView(window.getDecorView());
        }
    }public void pop() {
        if (stack.size() == 1)
            finish();
        LocalActivityManager manager = getLocalActivityManager();
        manager.destroyActivity(stack.pop(), true);
        if (stack.size() > 0) {
            Intent lastIntent = manager.getActivity(stack.peek()).getIntent();
            Window newWindow = manager.startActivity(stack.peek(), lastIntent);
            setContentView(newWindow.getDecorView());
        }
    }
    TabActivity.java
    public class TabActivity extends TabActivity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.tab_screen);
            TabHost tabHost = getTabHost();
            Intent intent = new Intent().setClass(this, ActivityStack.class);
            TabHost.TabSpec spec = tabHost.newTabSpec("tabId").setIndicator("Temp", getResources().getDrawable(R.drawable.home));
            spec.setContent(intent);        tabHost.addTab(spec);        Intent intent1 = new Intent().setClass(this, ActivityStack.class);
            TabHost.TabSpec spec1 = tabHost.newTabSpec("tabId").setIndicator("Temp", getResources().getDrawable(R.drawable.invoice));
            spec1.setContent(intent1);
            tabHost.addTab(spec1);        tabHost.setCurrentTab(0);
        }
    }
    FirstActivity.java
    public class FirstActivity extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            TextView textView = new TextView(this);
            textView.setText("Tab Sample Activity ");
            textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent();
                    intent.setClass(getParent(), SecondActivity.class);
                    ActivityStack activityStack = (ActivityStack) getParent();
                    activityStack.push("SecondActivity", intent);
                }
            });
            setContentView(textView);
        }
    }
    SecondActivity.java
    public class SecondActivity extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            TextView textView = new TextView(this);
            textView.setText("First Stack Activity ");
            textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent();
                    intent.setClass(getParent(), ThirdActivity.class);
                    ActivityStack activityStack = (ActivityStack) getParent();
                    activityStack.push("ThirdActivity", intent);
                }
            });
            setContentView(textView);
        }
    }
    ThirdActivity.java
    public class ThirdActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
    }
    在res/layout文件夹下设置XML 文件
    1) tab_screen.xml
    <?xml version="1.0" encoding="utf-8"?>
    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@android:id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >    <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"
            android:padding="3dp" >        <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_above="@android:id/tabs"
                android:layout_weight="1" />        <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true" />
        </RelativeLayout></TabHost>
    2) main.xml
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >    <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/hello" /></LinearLayout>
    AndroidManifest.xml
    <uses-sdk android:minSdkVersion="8" />    <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" >
            <activity
                android:name=".FirstActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
            <activity
                android:name=".TabActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity
                android:name=".ActivityStack"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
            <activity
                android:name=".SecondActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
            <activity
                android:name=".ThirdActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
        </application></manifest>