Android 使用PageAdapter启动新活动

Android 使用PageAdapter启动新活动,android,android-tabs,android-pageradapter,Android,Android Tabs,Android Pageradapter,我正在开发一个android应用程序,其中有4个不同的标签。现在,对于每个选项卡,我必须分配不同的活动。e、 例如,对于表1,应该有First.java活动。对于选项卡2,应该有Second.java活动,依此类推。我遵循了一个教程并成功实现了,下面是我的代码 activity_main.xml MyPagerAdapter.java 但是,在这里,我想对每个选项卡启动不同的活动,如何才能做到这一点?我建议您使用按钮,而不是带有PageAdapter的选项卡,然后您只需要调用OnClickLis

我正在开发一个android应用程序,其中有4个不同的标签。现在,对于每个选项卡,我必须分配不同的活动。e、 例如,对于表1,应该有First.java活动。对于选项卡2,应该有Second.java活动,依此类推。我遵循了一个教程并成功实现了,下面是我的代码

activity_main.xml MyPagerAdapter.java
但是,在这里,我想对每个选项卡启动不同的活动,如何才能做到这一点?

我建议您使用按钮,而不是带有PageAdapter的选项卡,然后您只需要调用
OnClickListener()
指示您需要更改的页面,例如:在第一个按钮中,您调用第一个页面,
pager.setCurrentItem(0)

我建议您使用按钮,而不是带有PageAdapter的选项卡,然后您只需要调用
OnClickListener()
指示您需要更改的页面,例如:在第一个按钮中,您调用第一页,
pager.setCurrentItem(0)

在这里,您可以相应地更改代码


在这里,您可以相应地更改代码

是的,但这不是我的问题。我希望在不同的选项卡中有不同的活动。表示在表1中,应该有活动A;在表2中,应该有活动B和类似wise…是的,但这不是我的问题。我希望在不同的选项卡中有不同的活动。表示在表1中,应该有活动A;在表2中,应该有活动B和类似的内容。。。。
<?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:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <FrameLayout
                android:id="@+id/tab1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:visibility="gone" />

            <FrameLayout
                android:id="@+id/tab2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:visibility="gone" />

            <FrameLayout
                android:id="@+id/tab3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:visibility="gone" />

            <FrameLayout
                android:id="@+id/tab4"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:visibility="gone" />
        </FrameLayout>

        <android.support.v4.view.ViewPager
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/pager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

</TabHost>
public class MainActivity extends Activity implements OnTabChangeListener, OnPageChangeListener{  
    private TabHost host;  
    private ViewPager pager; 

 @Override  
 public void onCreate(Bundle savedInstanceState) {  
   super.onCreate(savedInstanceState);  
   setContentView(R.layout.activity_main);  
   host = (TabHost)findViewById(android.R.id.tabhost);  
   pager = (ViewPager) findViewById(R.id.pager);  

   host.setup();  


   TabSpec spec = host.newTabSpec("tab1");  
   spec.setContent(R.id.tab1);  
   spec.setIndicator("Check In");   
   host.addTab(spec);  

   spec = host.newTabSpec("tab2");  
   spec.setContent(R.id.tab2);  
   spec.setIndicator("Buddies");  
   host.addTab(spec);  

   spec = host.newTabSpec("tab3");  
   spec.setContent(R.id.tab3);  
   spec.setIndicator("Recommendation");  
   host.addTab(spec); 

   spec = host.newTabSpec("tab4");  
   spec.setContent(R.id.tab4);  
   spec.setIndicator("Feed");  
   host.addTab(spec);  

   pager.setAdapter(new MyPagerAdapter(this));  
   pager.setOnPageChangeListener(this);  
   host.setOnTabChangedListener(this);  

 }  
    @Override  
    public void onTabChanged(String tabId){  
         int pageNumber = 0;  
         if(tabId.equals("tab1"))
         {  
              pageNumber = 0;  

         }

         else if(tabId.equals("tab2"))
         {  
              pageNumber = 1;  
         }

         else if(tabId.equals("tab3"))
         {  
              pageNumber = 2;  
         }

         else if(tabId.equals("tab4"))
         {  
              pageNumber = 3;  
         }
         else
         {  
              pageNumber = 3;  
         }  

         pager.setCurrentItem(pageNumber);  
    } 

    @Override  
    public void onPageSelected(int pageNumber) {  
         host.setCurrentTab(pageNumber);  
    }
    @Override
    public void onPageScrollStateChanged(int arg0) {


    }
    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {


    }
    }
public class MyPagerAdapter extends PagerAdapter {
    private Context ctx;

    public MyPagerAdapter(Context ctx) {
        this.ctx = ctx;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        TextView tView = new TextView(ctx);
        position++;
        tView.setText("Page number: " + position);
        tView.setTextColor(Color.RED);
        tView.setTextSize(20);
        container.addView(tView);
        return tView;
    }

    @Override
    public int getCount() {
        return 4;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return (view == object);
    }

    @Override
    public void destroyItem(View container, int position, Object object) {
        ((ViewPager) container).removeView((View) object);
    }
}
public class MyPagerAdapter extends PagerAdapter {
    private Context ctx;

    public MyPagerAdapter(Context ctx) {
        this.ctx = ctx;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        View parent_view = null;
        if (position ==0) {
            parent_view = getViewForPageOne();
            ((ViewPager) container).addView(parent_view, 0);
            return parent_view;
        }


        else
        {
            TextView tView = new TextView(ctx);
            position++;
            tView.setText("Page number: " + position);
            tView.setTextColor(Color.RED);
            tView.setTextSize(20);
            container.addView(tView);

            return tView;
        }

    }

    @Override
    public int getCount() {
        return 5;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return (view == object);
    }

    @Override
    public void destroyItem(View container, int position, Object object) {
        ((ViewPager) container).removeView((View) object);
    }

    private View getViewForPageOne(){
        LayoutInflater inflater = (LayoutInflater)ctx.getSystemService
                  (Context.LAYOUT_INFLATER_SERVICE);
        View v = inflater.inflate(R.layout.first, null);

         return v;
    }
}