java – 用按钮点击滑动到下一个片段
发布时间:2020-12-14 16:46:58 所属栏目:Java 来源:网络整理
导读:请看下面的代码. FirstView.java import android.content.Intent;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import androi
请看下面的代码.
FirstView.java import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; public class FirstView extends Fragment { private TextView firstText; private Button btn; public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_view1,container,false); firstText = (TextView)view.findViewById(R.id.viewOneText); btn = (Button)view.findViewById(R.id.viewOneBtn); btn.setOnClickListener(new ButtonEvent()); return view; } private class ButtonEvent implements OnClickListener { @Override public void onClick(View v) { // TODO Auto-generated method stub new SecondView(); } } } SecondView.java import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; public class SecondView extends Fragment { private TextView secondText; private Button secondViewBtn; public View onCreateView(LayoutInflater inflater,Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_view2,false); secondText = (TextView)view.findViewById(R.id.secondViewText); secondViewBtn = (Button)view.findViewById(R.id.secondViewBtn); secondViewBtn.setOnClickListener(new ButtonEvent()); return view; } private class ButtonEvent implements OnClickListener { @Override public void onClick(View v) { // TODO Auto-generated method stub secondText.setText("Second View Text changed"); } } } MainActivity.java import android.os.Bundle; import android.app.Activity; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.Menu; public class MainActivity extends FragmentActivity { private ViewPager viewPager; private MyAdapter pageAdapter; private static final int ITEMS = 2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager)findViewById(R.id.pager); pageAdapter = new MyAdapter(getSupportFragmentManager()); viewPager.setAdapter(pageAdapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main,menu); return true; } public static class MyAdapter extends FragmentPagerAdapter { public MyAdapter(FragmentManager fragmentManager) { super(fragmentManager); } @Override public int getCount() { return ITEMS; } @Override public Fragment getItem(int position) { if(position==0) { return new FirstView(); } else { return new SecondView(); } } } } 在这段代码中,当我点击FirstView中的Button时,我需要移动到SecondView.我试图用意图,但猜测是错误的.目前这是因为ViewPager的滑动功能,当我点击按钮时,需要移动到SecondView,具有相同的滑动功能. 我该怎么做?请帮忙. 我该怎么做? 解决方法
只需添加一个将碎片移动到您的活动的新方法:
public void setCurrentItem (int item,boolean smoothScroll) { viewPager.setCurrentItem(item,smoothScroll); } 并从按钮侦听器中调用它: ((MainActivity)getActivity()).setCurrentItem (1,true); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |