xml方式添加Fragment及概述

package com.example.tyxiong.myapplication;

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.app.ListFragment;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;

import java.util.ArrayList;

/*
* Fragment 概述:
*       1.有自己的生命周期,可以接收自己的事件
*       2 必须嵌入到Activity中使用,
*       3 只有当所在的Activity处理于运行状态时,才可独立的操作Fragment
*     设计初衷是为了平板大屏.
*
*     四个特征:
*       1 Fragment可方法getActivity()获得其所在的Activity;Activity也可调用FragmentManager的findFragmentById()
*       方法获得其拥有的Fragment.
*       2 Activity可调用FragmentManager的add() replace() remove()方法动态的添加删除Fragment
*       3 一个Activity可嵌入多个Fragment; 同时一个Fragment也可被多个Activity复用
*       4 Fragment有自己的生命周期.
*
*    Fragment常用有4个子类 DialogFragment ListFragment PreferenceFragment WebViewFragment
*
*    1 创建Fragment,同样需要继承Fragment或子类.
*    2实现方法 如onCreate()实例化Fragment回调,可初始化一些;
*        onCreateView()Fragment绘制界面时回调,该方法必须返回一个View也是作为该Fragment的显示组件.
**
* 如ListFragment 则无需重写onCreateView()方法,设置Adapter提供列表项内容即可
*
添加Fragment:两种方式 xml java
xml: 把Fragment当成一个普通组件一样添加到Activity的布局文件中,<fragment子元素>主要属性name 全包名.

java方式:3步.
        1创建Fragment子类实例.
        2利用FragmentManager的add() replace()方法加入
        3submit()


 Activity--->Fragment传输数据(同样利用Bundle)
 6步 1创建Fragment实例
     2创建Bundle
     3调用setArgument()设置参数.
     4利用FragmentManager的add() replace()加入Fragment
     5提交
     6Fragment那边调用getArgument()取出数据.


 Fragment--->Activity
    方法:在Fragment定义时,定义一个内部接口;让Fragment的Activity来实现接口,这样Fragment可调用接口方法将数据传给Activity.



以下代码演示了 xml方式添加Fragment 


 <fragment
        android:name="com.example.tyxiong.myapplication.FirstFragment"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/listfrag"
        >


    </fragment>
*/
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }
}

class FirstFragment extends ListFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       String[] data_list = {"第一列", "第二列", "第三列"};

        setListAdapter(new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, data_list));

    }
}

展开阅读全文

没有更多推荐了,返回首页