Fragment之间传值的方法

来源:互联网 发布:淘宝店有营业执照吗 编辑:程序博客网 时间:2024/05/22 14:33

Activity布局:

<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>  

Fragment1布局

<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>  
Activity的代码

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();      }          }  


Fragment1的代码

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);      }  }  


Fragment2布局

<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>  
Fragment2的代码
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;      }  }  

0 0
原创粉丝点击