80,351
社区成员
发帖
与我相关
我的任务
分享
package org.xzx;
import android.app.Activity;
import android.app.LocalActivityManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import java.util.ArrayList;
public class TestViewpageActivity extends Activity {
Context context = null;
LocalActivityManager manager = null;
ViewPager pager = null;
TabHost tabHost = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
context = TestViewpageActivity.this;
manager = new LocalActivityManager(this, true);
manager.dispatchCreate(savedInstanceState);
tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost.setup();
tabHost.setup(manager);
tabHost.addTab(tabHost.newTabSpec("A").setIndicator("A")
.setContent(new Intent(context, A.class)));
tabHost.addTab(tabHost.newTabSpec("B").setIndicator("B")
.setContent(new Intent(context, B.class)));
tabHost.addTab(tabHost.newTabSpec("C").setIndicator("C")
.setContent(new Intent(context, C.class)));
tabHost.addTab(tabHost.newTabSpec("D").setIndicator("D")
.setContent(new Intent(context, D.class)));
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
if ("A".equals(tabId)) {
pager.setCurrentItem(0);
} else if ("B".equals(tabId)) {
pager.setCurrentItem(1);
} else if ("C".equals(tabId)) {
pager.setCurrentItem(2);
} else {
pager.setCurrentItem(3);
}
}
});
pager = (ViewPager) findViewById(R.id.viewpage);
final ArrayList<View> list = new ArrayList<View>();
Intent intent = new Intent(context, A.class);
list.add(getView("A", intent));
Intent intent2 = new Intent(context, B.class);
list.add(getView("B", intent2));
Intent intent3 = new Intent(context, C.class);
list.add(getView("C", intent3));
Intent intent4 = new Intent(context, D.class);
list.add(getView("D", intent4));
pager.setAdapter(new PagerAdapter() {
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
ViewPager pViewPager = ((ViewPager) arg0);
pViewPager.removeView(list.get(arg1));
}
@Override
public void finishUpdate(View arg0) {
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object instantiateItem(View arg0, int arg1) {
ViewPager pViewPager = ((ViewPager) arg0);
pViewPager.addView(list.get(arg1));
return list.get(arg1);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate(View arg0) {
}
});
pager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
tabHost.setCurrentTab(arg0);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
private View getView(String id, Intent intent) {
return manager.startActivity(id, intent).getDecorView();
}
}
<?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="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TabWidget>
<android.support.v4.view.ViewPager
android:id="@+id/viewpage"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" >
</FrameLayout>
</LinearLayout>
</TabHost>
/**
*
*/
package org.xzx;
import android.app.Activity;
import android.os.Bundle;
/**
* @author sharl
* @date 2012-2-23 上午10:51:57
* @usage
*/
public class A extends Activity {
/**
*
*/
public A() {
}
/*
* (non-Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.a);
}
}
<?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="match_parent"
android:layout_height="match_parent"
android:text="AAAAAAAAAAAA" />
</LinearLayout>
tabHost.addTab(tabHost.newTabSpec("A").setIndicator("A")
.setContent(new Intent(context, B.class)));
tabHost.addTab(tabHost.newTabSpec("B").setIndicator("B")
.setContent(new Intent(context, C.class)));
tabHost.addTab(tabHost.newTabSpec("C").setIndicator("C")
.setContent(new Intent(context, D.class)));
tabHost.addTab(tabHost.newTabSpec("D").setIndicator("D")
.setContent(new Intent(context, A.class)));