Fragment间的交互
使用回调的方式,让FragmentActivity充当中间交互的桥梁。
public class MainActivity extends AppCompatActivity implements OnClickIndexOnclick{
private FragmentManager fragmentManagerf;
private downFragment down;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fragmentManagerf = getSupportFragmentManager();
down=(downFragment) fragmentManagerf.findFragmentByTag("down");
}
@Override
public void onClick(int index) {
down.setIndex(index);
}
}
public interface OnClickIndexOnclick {//桥接器
void onClick(int index);
}
public class TopFragment extends Fragment{
private int index=1;
private OnClickIndexOnclick onClickIndexOnclick;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.top_layout,null);
Button button = view.findViewById(R.id.onclick);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
index++;
Index(index)
;
}
});
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
this.onClickIndexOnclick=(OnClickIndexOnclick) getActivity();//获取Activity的对象返回Activity
Index(index);
}
private void Index(int index){
Log.v("wang",""+index);
onClickIndexOnclick.onClick(index);
}
}
public class downFragment extends Fragment{
private TextView textView;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.down_layout,null);
textView =view.findViewById(R.id.textViewId);
return view;
}
public void setIndex(int index) {
textView.setText("当前点击了"+index+"次");
textView.setTextSize(30);
}
}
MianActivity
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<fragment
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:tag="top"
android:name="project.li.com.a05_fragmenttest.TopFragment">
</fragment>
<fragment
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:tag="down"
android:name="project.li.com.a05_fragmenttest.downFragment">
</fragment>
</LinearLayout>