第一种:
主布局文件:
[html] view plain copy <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的布局文件[html] view plain copy <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> 第2个Fragment的布局文件[html] view plain copy <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> 第1个Fragment的逻辑代码文件[java] view plain copy <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>主逻辑代码文件:
[java] view plain copy <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的逻辑代码文件[java] view plain copy <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对应的布局文件两个都同上
主布局文件
[html] view plain copy <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的逻辑代码文件[java] view plain copy <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的逻辑代码文件
[java] view plain copy <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>新闻热点
疑难解答