80,362
社区成员
发帖
与我相关
我的任务
分享
public class fragment1 extends Fragment {
private View view;
private Button btn;
private OnItemSelectedListener mListener;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment1,container,false);
bindViews();
setListener();
return view;
}
private void bindViews(){
btn = (Button) view.findViewById(R.id.btn);
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
try{
mListener = (OnItemSelectedListener) context;
}catch (ClassCastException e){
throw new ClassCastException(context.toString()+" must implement the Interface");
}
}
private void setListener(){
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mListener.onSelected("1");
}
});
}
public interface OnItemSelectedListener{
void onSelected(String str);
}
}
public class fragment2 extends Fragment {
private View view;
private TextView tv;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment2,container,false);
bindViews();
return view;
}
private void bindViews(){
tv = (TextView) view.findViewById(R.id.tv);
}
public void doSomething(String str){
tv.setText(str);
}
}
public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener, Fragment1.OnItemSelectedListener {
private MyPagerAdapter myPagerAdapter = null;
private ViewPager viewPager = null;
private final int PAGE_ONE = 0;
private final int PAGE_TWO = 1;
private final int PAGE_THREE = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onResume() {
super.onResume();
myPagerAdapter = new MyPagerAdapter(getSupportFragmentManager());
viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(myPagerAdapter);
viewPager.setCurrentItem(PAGE_TWO);
viewPager.setOffscreenPageLimit(3);
viewPager.addOnPageChangeListener(this);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
@Override
public void onSelected(String str) {
Fragment2 fragment2 = (Fragment2) myPagerAdapter.getItem(PAGE_TWO);
fragment2.doSomething(str);
viewPager.setCurrentItem(PAGE_TWO);
}
}