一、项目目录结构
二、activity_main.xml代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context=".MainActivity">
<LinearLayout
android:id="@+id/ll1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="1" >
</LinearLayout>
<LinearLayout
android:id="@+id/ll2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="1" >
</LinearLayout>
</LinearLayout>
三、fragment1.xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="修改" />
</LinearLayout>
四、fragment2.xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld" />
</LinearLayout>
五、MainActivity.java代码
package com.zgs.fragmentCommunition;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//[1]获取Fragment的管理者
FragmentManager fragmentManager = getFragmentManager();
//[2]开启事务
FragmentTransaction transaction = fragmentManager.beginTransaction();
//[3]动态替换
transaction.replace(R.id.ll1, new Fragment1(),"f1");
transaction.replace(R.id.ll2, new Fragment2(),"f2");
//[4]最后一步 记得commit
transaction.commit();
}
}
六、Fragment1.java代码
package com.zgs.fragmentCommunition;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
public class Fragment1 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, null);
//[1]找到按钮设置点击事件
view.findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//[2]修改Fragment2里面textview的值
Fragment2 f2 = (Fragment2) getActivity().getFragmentManager().findFragmentByTag("f2");
f2.setText("调到你了吧,哈哈");
}
});
return view;
}
}
七、Fragment2.java代码
package com.zgs.fragmentCommunition;
import android.annotation.SuppressLint;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
@SuppressLint("InflateParams")
public class Fragment2 extends Fragment {
private TextView tView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment2, null);
tView = (TextView) view.findViewById(R.id.tv);
return view;
}
//修改textview值的方法
public void setText(String content){
tView.setText(content);
}
}