java – 用按钮点击滑动到下一个片段

前端之家收集整理的这篇文章主要介绍了java – 用按钮点击滑动到下一个片段前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
请看下面的代码.

FirstView.java

  1. import android.content.Intent;
  2. import android.os.Bundle;
  3. import android.support.v4.app.Fragment;
  4. import android.view.LayoutInflater;
  5. import android.view.View;
  6. import android.view.View.OnClickListener;
  7. import android.view.ViewGroup;
  8. import android.widget.Button;
  9. import android.widget.TextView;
  10.  
  11. public class FirstView extends Fragment
  12. {
  13. private TextView firstText;
  14. private Button btn;
  15.  
  16. public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState)
  17. {
  18.  
  19.  
  20. View view = inflater.inflate(R.layout.fragment_view1,container,false);
  21.  
  22.  
  23. firstText = (TextView)view.findViewById(R.id.viewOneText);
  24. btn = (Button)view.findViewById(R.id.viewOneBtn);
  25.  
  26. btn.setOnClickListener(new ButtonEvent());
  27. return view;
  28.  
  29. }
  30.  
  31. private class ButtonEvent implements OnClickListener
  32. {
  33.  
  34. @Override
  35. public void onClick(View v) {
  36. // TODO Auto-generated method stub
  37. new SecondView();
  38.  
  39. }
  40.  
  41. }
  42. }

SecondView.java

  1. import android.os.Bundle;
  2. import android.support.v4.app.Fragment;
  3. import android.view.LayoutInflater;
  4. import android.view.View;
  5. import android.view.View.OnClickListener;
  6. import android.view.ViewGroup;
  7. import android.widget.Button;
  8. import android.widget.TextView;
  9.  
  10. public class SecondView extends Fragment
  11. {
  12. private TextView secondText;
  13. private Button secondViewBtn;
  14.  
  15. public View onCreateView(LayoutInflater inflater,Bundle savedInstanceState)
  16. {
  17.  
  18.  
  19. View view = inflater.inflate(R.layout.fragment_view2,false);
  20.  
  21.  
  22. secondText = (TextView)view.findViewById(R.id.secondViewText);
  23. secondViewBtn = (Button)view.findViewById(R.id.secondViewBtn);
  24.  
  25. secondViewBtn.setOnClickListener(new ButtonEvent());
  26. return view;
  27.  
  28. }
  29.  
  30. private class ButtonEvent implements OnClickListener
  31. {
  32.  
  33. @Override
  34. public void onClick(View v) {
  35. // TODO Auto-generated method stub
  36. secondText.setText("Second View Text changed");
  37.  
  38. }
  39.  
  40. }
  41. }

MainActivity.java

  1. import android.os.Bundle;
  2. import android.app.Activity;
  3. import android.support.v4.app.Fragment;
  4. import android.support.v4.app.FragmentActivity;
  5. import android.support.v4.app.FragmentManager;
  6. import android.support.v4.app.FragmentPagerAdapter;
  7. import android.support.v4.view.PagerAdapter;
  8. import android.support.v4.view.ViewPager;
  9. import android.view.Menu;
  10.  
  11. public class MainActivity extends FragmentActivity {
  12.  
  13. private ViewPager viewPager;
  14. private MyAdapter pageAdapter;
  15. private static final int ITEMS = 2;
  16.  
  17. @Override
  18. protected void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.activity_main);
  21.  
  22. viewPager = (ViewPager)findViewById(R.id.pager);
  23. pageAdapter = new MyAdapter(getSupportFragmentManager());
  24. viewPager.setAdapter(pageAdapter);
  25.  
  26. }
  27.  
  28. @Override
  29. public boolean onCreateOptionsMenu(Menu menu) {
  30. // Inflate the menu; this adds items to the action bar if it is present.
  31. getMenuInflater().inflate(R.menu.main,menu);
  32. return true;
  33. }
  34.  
  35. public static class MyAdapter extends FragmentPagerAdapter {
  36.  
  37.  
  38. public MyAdapter(FragmentManager fragmentManager) {
  39. super(fragmentManager);
  40. }
  41.  
  42. @Override
  43. public int getCount() {
  44. return ITEMS;
  45. }
  46.  
  47. @Override
  48. public Fragment getItem(int position) {
  49. if(position==0)
  50. {
  51. return new FirstView();
  52. }
  53. else
  54. {
  55. return new SecondView();
  56. }
  57. }
  58. }
  59.  
  60. }

在这段代码中,当我点击FirstView中的Button时,我需要移动到SecondView.我试图用意图,但猜测是错误的.目前这是因为ViewPager的滑动功能,当我点击按钮时,需要移动到SecondView,具有相同的滑动功能.

我该怎么做?请帮忙.

我该怎么做?

解决方法

只需添加一个将碎片移动到您的活动的新方法
  1. public void setCurrentItem (int item,boolean smoothScroll) {
  2. viewPager.setCurrentItem(item,smoothScroll);
  3. }

并从按钮侦听器中调用它:

  1. ((MainActivity)getActivity()).setCurrentItem (1,true);

猜你在找的Java相关文章