热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

xml方式添加Fragment及概述

packagecom.example.tyxiong.myapplication;importandroid.app.Activity;importandroid.app.Fra
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的布局文件中,主要属性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


android:name="com.example.tyxiong.myapplication.FirstFragment"
android:layout_
android:layout_
android:id="@+id/listfrag"
>



*/

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

}
}


推荐阅读
author-avatar
Hello_DavidLeete_811
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有