Android 如何为不同的OnClick方法放置多个viewPager.setCurrentItem(位置)?

Android 如何为不同的OnClick方法放置多个viewPager.setCurrentItem(位置)?,android,android-viewpager,Android,Android Viewpager,假设活动A有5个按钮。每个按钮将带您进入活动B,这是一个带有5个选项卡的选项卡式活动。当我单击button1时,我希望它将您带到tab1、button2=tab2、button3=tab3等等。我使用的是setCurrentItem,但它仅适用于第一个和最后一个按钮。中间的其余部分将带您进入表1。 我需要什么代码,这样按钮2将带我到选项卡2。我是否需要和if-else声明?非常感谢您的帮助 ActivityA.java public void Button1(View view) {

假设活动A有5个按钮。每个按钮将带您进入活动B,这是一个带有5个选项卡的选项卡式活动。当我单击button1时,我希望它将您带到tab1、button2=tab2、button3=tab3等等。我使用的是setCurrentItem,但它仅适用于第一个和最后一个按钮。中间的其余部分将带您进入表1。 我需要什么代码,这样按钮2将带我到选项卡2。我是否需要和if-else声明?非常感谢您的帮助

ActivityA.java

  public void Button1(View view) {
    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("Tab1", 0);  //2 or whatever you want
    startActivity(intent);
}

public void Button2(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("Tab2", 1);  //2 or whatever you want
    startActivityForResult(intent, 0);


}

public void Button3(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("Tab3", 2);  //2 or whatever you want
    startActivityForResult(intent, 0);

}

public void Button4(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("Tab4", 3);  //2 or whatever you want
    startActivityForResult(intent, 0);

}

public void Button5(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("Tab5", 4);  //2 or whatever you want
    startActivityForResult(intent, 0);

}
ActivityB.java

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

    final int position1 = getIntent().getExtras().getInt("Tab1");

    final int position3 = getIntent().getExtras().getInt("Tab3");
    final int position2 = getIntent().getExtras().getInt("Tab2");
    final int position4 = getIntent().getExtras().getInt("Tab4");

    final int position5 = getIntent().getExtras().getInt("Tab5");


    PagerAdapter adapter = new PagerAdapter
            (getSupportFragmentManager(), tabLayout.getTabCount());
    viewPager.setAdapter(adapter);

    {
        viewPager.setCurrentItem(position1);
    }
    {
        viewPager.setCurrentItem(position3);
    }
    {
        viewPager.setCurrentItem(position2);
    }

    {
        viewPager.setCurrentItem(position4);
    }

    {

        viewPager.setCurrentItem(position5);
    }

在意图中,您将值放在不同的键中。改为使用相同的键:
活动1:

public void Button1(View view) {
    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("position", 0);  //2 or whatever you want
    startActivity(intent);
}

public void Button2(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("position", 1);  //2 or whatever you want
    startActivityForResult(intent, 0);
}

public void Button3(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("position", 2);  //2 or whatever you want
    startActivityForResult(intent, 0);
}

public void Button4(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("position", 3);  //2 or whatever you want
    startActivityForResult(intent, 0);
}

public void Button5(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("position", 4);  //2 or whatever you want
    startActivityForResult(intent, 0);
}
活动2:

    final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
PagerAdapter adapter = new PagerAdapter
        (getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.setCurrentItem(getIntent().getExtras().getInt("position",0));

在意图中,您将值放在不同的键中。改为使用相同的键:
活动1:

public void Button1(View view) {
    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("position", 0);  //2 or whatever you want
    startActivity(intent);
}

public void Button2(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("position", 1);  //2 or whatever you want
    startActivityForResult(intent, 0);
}

public void Button3(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("position", 2);  //2 or whatever you want
    startActivityForResult(intent, 0);
}

public void Button4(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("position", 3);  //2 or whatever you want
    startActivityForResult(intent, 0);
}

public void Button5(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("position", 4);  //2 or whatever you want
    startActivityForResult(intent, 0);
}
活动2:

    final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
PagerAdapter adapter = new PagerAdapter
        (getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.setCurrentItem(getIntent().getExtras().getInt("position",0));

请不要使用startActivityForResult您只能使用一个键传递选项卡索引

    public void Button1(View view) {
        Intent intent = new Intent(view.getContext(), TabbedActivity.class);
        intent.putExtra("tabIndex", 0);  
        startActivity(intent);
    }
 public void Button2(View view) {
        Intent intent = new Intent(view.getContext(), TabbedActivity.class);
        intent.putExtra("tabIndex", 1);  
        startActivity(intent);
    }
 public void Button3(View view) {
        Intent intent = new Intent(view.getContext(), TabbedActivity.class);
        intent.putExtra("tabIndex", 2);  
        startActivity(intent);
    }
 public void Button4(View view) {
        Intent intent = new Intent(view.getContext(), TabbedActivity.class);
        intent.putExtra("tabIndex", 3);  
        startActivity(intent);
    }
在活动B中获取

final int position = getIntent().getExtras().getInt("tabIndex");
PagerAdapter adapter = new PagerAdapter
            (getSupportFragmentManager(), tabLayout.getTabCount());
    viewPager.setAdapter(adapter);
     viewPager.setCurrentItem(position);

请不要使用startActivityForResult您只能使用一个键传递选项卡索引

    public void Button1(View view) {
        Intent intent = new Intent(view.getContext(), TabbedActivity.class);
        intent.putExtra("tabIndex", 0);  
        startActivity(intent);
    }
 public void Button2(View view) {
        Intent intent = new Intent(view.getContext(), TabbedActivity.class);
        intent.putExtra("tabIndex", 1);  
        startActivity(intent);
    }
 public void Button3(View view) {
        Intent intent = new Intent(view.getContext(), TabbedActivity.class);
        intent.putExtra("tabIndex", 2);  
        startActivity(intent);
    }
 public void Button4(View view) {
        Intent intent = new Intent(view.getContext(), TabbedActivity.class);
        intent.putExtra("tabIndex", 3);  
        startActivity(intent);
    }
在活动B中获取

final int position = getIntent().getExtras().getInt("tabIndex");
PagerAdapter adapter = new PagerAdapter
            (getSupportFragmentManager(), tabLayout.getTabCount());
    viewPager.setAdapter(adapter);
     viewPager.setCurrentItem(position);
试试这个

public void Button1(View view) {
    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("tabPosition", 0);  //2 or whatever you want
    startActivity(intent);
}

public void Button2(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("tabPosition", 1);  //2 or whatever you want
    startActivityForResult(intent, 0);


}

public void Button3(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("tabPosition", 2);  //2 or whatever you want
    startActivityForResult(intent, 0);

}

public void Button4(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("tabPosition", 3);  //2 or whatever you want
    startActivityForResult(intent, 0);

}

public void Button5(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("tabPosition", 4);  //2 or whatever you want
    startActivityForResult(intent, 0);

}
然后在你的视图寻呼机类

final int currentPosition = getIntent().getExtras().getInt("tabPosition");
这样设置您的视图

PagerAdapter adapter = new PagerAdapter
            (getSupportFragmentManager(), tabLayout.getTabCount());
    viewPager.setAdapter(adapter);
    viewPager.setCurrentItem(currentPosition);
试试这个

public void Button1(View view) {
    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("tabPosition", 0);  //2 or whatever you want
    startActivity(intent);
}

public void Button2(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("tabPosition", 1);  //2 or whatever you want
    startActivityForResult(intent, 0);


}

public void Button3(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("tabPosition", 2);  //2 or whatever you want
    startActivityForResult(intent, 0);

}

public void Button4(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("tabPosition", 3);  //2 or whatever you want
    startActivityForResult(intent, 0);

}

public void Button5(View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("tabPosition", 4);  //2 or whatever you want
    startActivityForResult(intent, 0);

}
然后在你的视图寻呼机类

final int currentPosition = getIntent().getExtras().getInt("tabPosition");
这样设置您的视图

PagerAdapter adapter = new PagerAdapter
            (getSupportFragmentManager(), tabLayout.getTabCount());
    viewPager.setAdapter(adapter);
    viewPager.setCurrentItem(currentPosition);
然后在secondactivity中,您只需要获得一个值。像这样:

final ViewPager ViewPager=(ViewPager)findViewById(R.id.pager)

希望这对你有帮助

然后在secondactivity中,您只需要获得一个值。像这样:

final ViewPager ViewPager=(ViewPager)findViewById(R.id.pager)


希望这将对您有所帮助。

不要在每个按钮视图中使用不同的键值。请使用单键并在位置变量中获取值,只需在单个整数变量中获取值并使用该变量设置currentIten

e、 g。 活动A:

public void PcHealth (View view) {
    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("TabPosition", 0);  //2 or whatever you want
    startActivity(intent);
}

public void Wifi (View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("TabPosition", 1);  //2 or whatever you want
    startActivityForResult(intent, 0);


}

public void Misc (View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("TabPosition", 2);  //2 or whatever you want
    startActivityForResult(intent, 0);

}

public void HowTo (View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("TabPosition", 3);  //2 or whatever you want
    startActivityForResult(intent, 0);

}

public void Shortcut (View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("TabPosition", 4);  //2 or whatever you want
    startActivityForResult(intent, 0);

}
ActivityB.java:

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

    final int position = getIntent().getExtras().getInt("TabPosition");


    PagerAdapter adapter = new PagerAdapter
            (getSupportFragmentManager(), tabLayout.getTabCount());
    viewPager.setAdapter(adapter);

  viewPager.setCurrentItem(poisition);

不要在每个按钮视图中使用不同的键值,而是使用单个键并在位置变量中获取值,只需在单个整数变量中获取值并使用该变量设置currentIten

e、 g。 活动A:

public void PcHealth (View view) {
    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("TabPosition", 0);  //2 or whatever you want
    startActivity(intent);
}

public void Wifi (View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("TabPosition", 1);  //2 or whatever you want
    startActivityForResult(intent, 0);


}

public void Misc (View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("TabPosition", 2);  //2 or whatever you want
    startActivityForResult(intent, 0);

}

public void HowTo (View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("TabPosition", 3);  //2 or whatever you want
    startActivityForResult(intent, 0);

}

public void Shortcut (View view) {

    Intent intent = new Intent(view.getContext(), TabbedActivity.class);
    intent.putExtra("TabPosition", 4);  //2 or whatever you want
    startActivityForResult(intent, 0);

}
ActivityB.java:

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

    final int position = getIntent().getExtras().getInt("TabPosition");


    PagerAdapter adapter = new PagerAdapter
            (getSupportFragmentManager(), tabLayout.getTabCount());
    viewPager.setAdapter(adapter);

  viewPager.setCurrentItem(poisition);

布罗奥,德里隆·布莱克库里,上帝保佑你。它工作得非常出色。我被困在这上面有一段时间了。我认为这需要一次痛击。干杯布罗奥,德里隆·布莱克库里,上帝保佑你。它工作得非常出色。我被困在这上面有一段时间了。我认为这需要一次痛击。干杯