關於Android中Fragment靜態和動態加載的方法


一.靜態加載

1.首先創建一個layout布局fragment.xml,里面放要顯示和操作的控件

2.創建一個layout布局main1.xml,用來實現頁面的跳轉(跳轉為要實現靜態加載的界面)

3.創建一個layout布局main2.xml,用來實現MyFragment類的轉換為視圖控件的定義

4.創建一個繼承自Activity的Main1.java類,載入main1.xml的視圖,並且實現點擊后頁面跳轉為Main2.java類

5.創建一個繼承自Activity的Main2.java類,載入main2.xml的視圖,並且實現點擊后fragment.xml中組件的text改變的效果,main2.java中可以直接引用fragment.xml中的控件

6.創建一個繼承自ragment的MyFragment.java類,載入fragment.xml的視圖,並且設置fragment.xml中組件的text初始的值

7.在AndroidMainFest文件里面定義Activity的Main1.java類和Activity的Main2.java類,並把Main1.java定義為初始的Activity界面

 

fragment.xml

<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />


<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="改變" />

 

main1.xml

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="靜態加載" />

 

main2.xml

<fragment 
android:id="@+id/fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:name="com.example.fragmentjing.MyFragment"
/>

 

Main1.java

public class Main1 extends Activity {

  private Button btn1;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main1);

    btn1=(Button) findViewById(R.id.button1);

    btn1.setOnClickListener(new OnClickListener(){

    @Override
    public void onClick(View v) {
      // TODO Auto-generated method stub
      Intent intent = new Intent(Main1.this,Main2.class);
      startActivity(intent);
    }

  });

}

 

Main2.java

public class Main2 extends Activity {
  private TextView text;
  private Button button;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main2);

    button=(Button) findViewById(R.id.button4);
    text=(TextView) findViewById(R.id.textView4);


    button.setOnClickListener(new OnClickListener(){

    @Override
    public void onClick(View v) {
      // TODO Auto-generated method stub
      text.setText("TextView的值改變了");    
    }    
   });
 }
}

 

MyFragment.java

public class MyFragment extends Fragment{

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
  Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  View view=inflater.inflate(R.layout.fragment,container,false);
  TextView textView=(TextView)view.findViewById(R.id.textView4);
  textView.setText("靜態加載Fragment");
  return view;
  }
}

 

 

二.動態加載

1.首先創建一個layout布局fragment.xml,里面放要顯示和操作的控件

2.創建一個layout布局main1.xml,用來實現頁面的跳轉(跳轉為要實現靜態加載的界面)

3.創建一個繼承自Activity的Main1.java類,載入main1.xml的視圖,並且實現點擊后創建MyFragment2.java類的事件

4.創建一個繼承自ragment的MyFragment2.java類,載入fragment.xml的視圖,並且設置fragment.xml中組件的text初始的值

5.在AndroidMainFest文件里面定義Activity的Main1.java類和Activity的Main2.java類,並把Main1.java定義為初始的Activity界面

 

fragment.xml

<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />


<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="改變" />

 

main1.xml

<LinearLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>

 

Main1.java

public class Main1 extends Activity {

  private Button btn2;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main1);
    btn2=(Button) findViewById(R.id.button2);

    btn2.setOnClickListener(new OnClickListener(){

      @Override
      public void onClick(View v) {
        // TODO Auto-generated method stub
        MyFragment2 fragment2 = new MyFragment2();
        FragmentManager fragmrentManager = getFragmentManager();
        FragmentTransaction beginTransaction = fragmrentManager.beginTransaction();
        beginTransaction.add(R.id.frame, fragment2);
        beginTransaction.addToBackStack(null);
        beginTransaction.commit();
        }
      });
    }
}

 

MyFragment2.java

public class MyFragment2 extends Fragment{
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
  Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view=inflater.inflate(R.layout.fragment,container,false);
    TextView textView=(TextView)view.findViewById(R.id.textView4);
    textView.setText("動態加載Fragment");
    return view;
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM