MainActivity4代碼(Activity-Fragment通訊)
1 package fragmentdemo.example.administrator.fragmentdemo; 2 3 import android.app.Activity; 4 import android.app.FragmentManager; 5 import android.app.FragmentTransaction; 6 import android.os.Bundle; 7 import android.view.View; 8 import android.widget.Button; 9 import android.widget.EditText; 10 import android.widget.Toast; 11 12 /** 13 * Created by Administrator on 2016/5/7. 14 */ 15 public class MainActivity4 extends Activity { 16 private Button send; 17 private EditText editText; 18 19 protected void onCreate(Bundle savedInstanceState) { 20 21 super.onCreate(savedInstanceState); 22 setContentView(R.layout.main4); 23 send= (Button) findViewById(R.id.send); 24 editText= (EditText) findViewById(R.id.editText); 25 send.setOnClickListener(new View.OnClickListener() { 26 @Override 27 public void onClick(View v) { 28 String text=editText.getText().toString(); 29 MyFragment5 myFragment5=new MyFragment5();/*新建myFragment*/ 30 Bundle bundle=new Bundle();/*建立Bundle數據包*/ 31 bundle.putString("name",text); 32 myFragment5.setArguments(bundle);/*調用setArguments(bundle)方法*/ 33 FragmentManager fragmentManager = getFragmentManager();/*得到FragmentManager管理者*/ 34 FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();/*開啓一個事務*/ 35 fragmentTransaction.add(R.id.layout,myFragment5,"myFragment5"); 36 fragmentTransaction.commit();/*提交事務*/ 37 Toast.makeText(MainActivity4.this,"向Fragment發送數據"+text,Toast.LENGTH_SHORT).show(); 38 } 39 }); 40 } 41 }
Main方法java
1 package fragmentdemo.example.administrator.fragmentdemo; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 import java.util.List; 6 7 import android.app.Activity; 8 import android.app.Fragment; 9 import android.app.FragmentManager; 10 import android.app.FragmentTransaction; 11 import android.content.Intent; 12 import android.os.Bundle; 13 import android.widget.RadioGroup; 14 import android.widget.RadioGroup.OnCheckedChangeListener; 15 /*1)Fragment能夠做爲Activity界面的一部分組成出現; 16 (2)能夠在一個Activity中同時出現多個Fragment,而且一個Fragment也能夠在多個Activity中使用; 17 (3)在Activity運行過程當中,能夠添加、移除或替換Fragment; 18 (4)Fragment能夠響應本身的輸入事件,而且有本身的聲明週期,它們的生命週期受宿主Activity的生命週期影響; 19 (5)Fragment在第一次繪製它的用戶界面時,系統會調用onCreateView()方法,此方法返回一個View。(若是不顯示UI,返回null); 20 Fragment兩種加載方式:靜態加載、動態加載。*/ 21 22 public class MainActivity extends Activity implements OnCheckedChangeListener 23 { 24 25 private RadioGroup group; 26 27 @Override 28 protected void onCreate(Bundle savedInstanceState) { 29 // TODO Auto-generated method stub 30 super.onCreate(savedInstanceState); 31 setContentView(R.layout.activity_main); 32 group = (RadioGroup) findViewById(R.id.radiogroup); 33 group.setOnCheckedChangeListener(this); 34 35 } 36 37 @Override 38 public void onCheckedChanged(RadioGroup group, int checkedId) { 39 // TODO Auto-generated method stub 40 41 switch (checkedId) { 42 case R.id.first: { 43 Intent intent=new Intent(this,MainActivity2.class); 44 startActivity(intent); 45 break; 46 47 } 48 case R.id.second: { 49 /*Fragment 動態加載*/ 50 MyFragment2 myFragment2=new MyFragment2();/*建立實例*/ 51 FragmentManager fragmentManager = getFragmentManager();/*獲取到FragmentManager*/ 52 FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();/*開啓事務*/ 53 fragmentTransaction.add(R.id.frame,myFragment2); 54 fragmentTransaction.addToBackStack(null);/*經過物理返回鍵返回*/ 55 fragmentTransaction.commit();/*提交事務*/ 56 57 58 break; 59 } 60 case R.id.thrid: { 61 Intent intent=new Intent(this,MainActivity3.class); 62 startActivity(intent); 63 break; 64 65 66 } 67 case R.id.fourth: { 68 Intent intent=new Intent(this,MainActivity4.class); 69 startActivity(intent); 70 break; 71 72 73 } 74 } 75 }
MyFragment5(Fragment-Activity通訊)android
package fragmentdemo.example.administrator.fragmentdemo; import android.app.Fragment; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; /** * Created by Administrator on 2016/5/7. */ public class MyFragment5 extends Fragment { @Nullable @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.text); String text=getArguments().get("name")+""; tv.setText(text); Toast.makeText(getActivity(),"已成功接收到"+text,Toast.LENGTH_SHORT).show(); return view; } }
main4.xml代碼(LinearLayout代碼)app
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:id="@+id/layout"> 6 <EditText 7 android:layout_width="match_parent" 8 android:layout_height="wrap_content" 9 android:id="@+id/editText"/> 10 <Button 11 android:layout_width="wrap_content" 12 android:layout_height="wrap_content" 13 android:text="發送" 14 android:id="@+id/send"/> 15 </LinearLayout>
在AndroidManifest中進行註冊ide
<activity android:name=".MainActivity4"></activity>