第一种:
主布局文件:
- <span style="font-size:18px;"><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">
- <fragment
- android:id="@+id/fg1"
- android:name="mars.day12_fragmenttofragment.Fragment1"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:layout_width="0dp"/>
- <LinearLayout
- android:id="@+id/fg2"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:layout_width="0dp"
- android:orientation="horizontal">
- </LinearLayout>
- </LinearLayout>
- </span>
- <span style="font-size:18px;"><?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"
- android:background="#00ff00"
- android:gravity="center">
- <EditText
- android:id="@+id/et"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:textSize="30sp"/>
- <Button
- android:id="@+id/bt"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="发送"
- android:textSize="30sp"/>
- </LinearLayout>
- </span>
- <span style="font-size:18px;"><?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"
- android:background="#0000ff"
- android:gravity="center">
- <TextView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:textSize="30sp"
- android:text="接收的内容:"/>
- <TextView
- android:id="@+id/tv"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:textSize="30sp"/>
- </LinearLayout>
- </span>
- <span style="font-size:18px;">package mars.day12_fragmenttofragment;
- import android.annotation.SuppressLint;
- import android.app.Activity;
- 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;
- import android.widget.Button;
- import android.widget.EditText;
- @SuppressLint("NewApi") public class Fragment1 extends Fragment{
- EditText et;
- CallBack call;
- @Override
- public void onAttach(Activity activity) {
- super.onAttach(activity);
- call=(CallBack) getActivity();
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View view=inflater.inflate(R.layout.fragment1,container,false);
- et=(EditText) view.findViewById(R.id.et);
- Button bt=(Button) view.findViewById(R.id.bt);
- bt.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- call.getData(et.getText().toString());
- }
- });
- return view;
- }
- public interface CallBack
- {
- public void getData(String data);
- }
- }
- </span>
主逻辑代码文件:
- <span style="font-size:18px;">package mars.day12_fragmenttofragment;
- import mars.day12_fragmenttofragment.Fragment1.CallBack;
- import android.os.Bundle;
- import android.annotation.SuppressLint;
- import android.app.Activity;
- import android.app.FragmentManager;
- import android.app.FragmentTransaction;
- import android.view.Menu;
- public class MainActivity extends Activity implements CallBack{
- FragmentManager fm;
- @SuppressLint("NewApi") @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- fm=getFragmentManager();
- FragmentTransaction shiwu = fm.beginTransaction();
- shiwu.replace(R.id.fg2,new Fragment2());
- shiwu.commit();
- }
- @SuppressLint("NewApi") @Override
- public void getData(String data) {
- Fragment2 fg2=new Fragment2();
- Bundle bundle=new Bundle();
- bundle.putString("mes",data);
- fg2.setArguments(bundle);
- FragmentTransaction shiwu = fm.beginTransaction();
- shiwu.replace(R.id.fg2,fg2);
- shiwu.commit();
- }
- }
- </span>
第二个Fragment的逻辑代码文件
- <span style="font-size:18px;">package mars.day12_fragmenttofragment;
- 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("NewApi") public class Fragment2 extends Fragment{
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View view=inflater.inflate(R.layout.fragment2,container,false);
- TextView tv=(TextView) view.findViewById(R.id.tv);
- Bundle bundle=getArguments();
- //判断需写
- if(bundle!=null)
- {
- tv.setText(bundle.getString("mes"));
- }
- return view;
- }
- }
- </span>
第二种和第三种方法:
Fragment对应的布局文件两个都同上
主布局文件
- <span style="font-size:18px;"><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">
- <fragment
- android:id="@+id/fg1"
- android:name="mars.day12_fragmenttofragment.Fragment1"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:layout_width="0dp"/>
- <LinearLayout
- android:id="@+id/fg2"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:layout_width="0dp"
- android:orientation="horizontal">
- </LinearLayout>
- </LinearLayout>
- </span>
第一个Fragment的逻辑代码文件
- <span style="font-size:18px;">package mars.method2and3;
- import mars.day12_fragmenttofragment.R;
- import android.annotation.SuppressLint;
- import android.app.Activity;
- 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;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- @SuppressLint("NewApi") public class Fragment1 extends Fragment{
- EditText et;
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View view=inflater.inflate(R.layout.fragment1,container,false);
- et=(EditText) view.findViewById(R.id.et);
- Button bt=(Button) view.findViewById(R.id.bt);
- bt.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- String data=et.getText().toString();
- //第二种方法
- // Fragment2 fg2=(Fragment2) getFragmentManager().findFragmentById(R.id.fg2);
- // fg2.setData(data);
- //第三种方法
- TextView tv=(TextView) getActivity().findViewById(R.id.tv);
- tv.setText(data);
- }
- });
- return view;
- }
- }</span>
第2个Fragment的逻辑代码文件
- <span style="font-size:18px;">package mars.method2and3;
- import mars.day12_fragmenttofragment.R;
- 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("NewApi") public class Fragment2 extends Fragment{
- TextView tv;
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View view=inflater.inflate(R.layout.fragment2,container,false);
- tv=(TextView) view.findViewById(R.id.tv);
- return view;
- }
- public void setData(String str)
- {
- tv.setText(str);
- }
- }
- </span>