ListFragment
来源:互联网 发布:大型网络3d手机游戏 编辑:程序博客网 时间:2024/05/20 20:00
package com.example.tyxiong.myapplication;import android.app.Activity;import android.app.FragmentTransaction;import android.app.ListFragment;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.EditText;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 javaxml: 把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.Fragment生命周期>>> 4个状态11个生命周期方法onAttach()-->onCreate()-->onCreateView()-->onActivityCreated()-->onStart()-->onResume()-->onPause()--> onStop()-->onDetach()-->onDestroyView()-->onDestroy()* FragmentManager有4个功能.* 1 Activity借助FragmentManager的findFragmentById()获取其上的Fragment* 2 FragmentManager的popBackStack()方法可将Fragment从后台栈弹出(模拟用户按的BACK键)* 3 调用addOnBackStackChangeListener()注册监听器,可监听后台栈变化.* 4 借助FragmentTransaction对象的add() replace() remove() 可动态删除 添加Fragment** FragmentManager 管理* FragmentTransaction(Fragment事务) * * FragmentTransaction=FragmentManager.beginTransaction(); * * Transaction事务,replace() add() 后来 调用addToBackStack(null)将事务添加到BAck栈,用户按BACK会回到替换之前. * 以下演示...* */以下代码演示了 java方式添加Fragment Activity--->Fragment传数据 ???问题来了,只能在add() repace()时才能传给Fragment参数么...*/public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Bundle bundle = new Bundle(); ArrayList<String> list_data = new ArrayList<>(); for (int i = 0; i < 3; i++) { list_data.add("第" + i + "列"); } bundle.putStringArrayList("BUNDLE", list_data); FirstFragment firstFrag = new FirstFragment();//java代码添加Fragment方式 firstFrag.setArguments(bundle); FragmentTransaction fragTransaction = getFragmentManager().beginTransaction(); fragTransaction.add(R.id.linearLay, firstFrag, "FIRST_FRAG"); fragTransaction.addToBackStack(null).commit();//添加Fragment//也可用replace()...效果 }}class FirstFragment extends ListFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle bundle = getArguments(); ArrayList<String> list_data = bundle.getStringArrayList("BUNDLE"); assert list_data != null; setListAdapter(new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, list_data)); }}
0 0
- ListFragment
- ListFragment
- listFragment
- ListFragment
- ListFragment实例
- Android ListFragment
- Messages ListFragment
- android Listfragment
- Android ListFragment
- ListFragment+CheckedTextView和ListFragment+CheckBox两种多选效果
- 【Android 开发教程】ListFragment
- ListFragment setDivider的问题
- Android ListFragment实例Demo
- Android ListFragment使用
- ListFragment的使用
- 使用ListFragment显示列表
- Android自定义ListFragment
- ListFragment的用法
- 在线手册速查
- 1016. Phone Bills (25)
- 通信实验 动态分区存储管理方式的主存分配回收 查错
- ubuntu /elementary os下sublime text3 配置go开发环境
- 分支、循环语句
- ListFragment
- 支持各种主流支付通道,一码通刷
- Java常见内存溢出异常分析
- Java程序的结构设计
- 哈夫曼树应用拓展:压缩文件夹
- Java对MySQL数据库进行连接、查询和修改
- Deep Learning Papers Reading Roadmap
- 连接ACCESS2010数据库
- 换钱的最少货币数