1: 布局 layout_main
<fragment
android:id="@+id/fragment1"
android:name="com.bawei.communication.fragment.Fragment1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/holo_red_light"></fragment>
<fragment
android:id="@+id/fragment2"
android:name="com.bawei.communication.fragment.Fragment2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/holo_green_light"></fragment>
2: 布局 fragment1
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView>
3:布局 fragment2
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
4:代码 fragment1
public class Fragment1 extends Fragment {
private ListView lv;
private List<String> list = new ArrayList<>();
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, null);
getData();
//找控件
initView(view);
return view;
}
private void getData() {
for (int i = 0; i < 10; i++) {
list.add("条目:" + i);
}
}
private void initView(View view) {
lv = (ListView) view.findViewById(R.id.lv);
ArrayAdapter adapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, list);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (listener != null) {
listener.onFragmentClick(list.get(position));
}
}
});
}
//声明一个接口
private OnFragmentClickListener listener;
//定义接口 方法
public interface OnFragmentClickListener {
void onFragmentClick(String item);
}
//对外提供一个访问的方法
public void setOnFragmentClickListener(OnFragmentClickListener listener) {
this.listener = listener;
}
}
5:代码 fragment2
public class Fragment2 extends Fragment {
private TextView tv;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment2, null);
//找控件
initView(view);
return view;
}
private void initView(View view) {
tv = (TextView) view.findViewById(R.id.tv);
//fragment管理器
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
//得到Fragment1
Fragment1 fragment1 = (Fragment1) fragmentManager.findFragmentById(R.id.fragment1);
//实现点击事件
fragment1.setOnFragmentClickListener(new Fragment1.OnFragmentClickListener() {
@Override
public void onFragmentClick(String item) {
tv.setText("接口回调:" + item);
}
});
}
}