Activity和Fragment

(一)LauncherActivity开发启动应用
实现public Intent intentForPosition(int position){
return new Intent(MainActivity.this,class[position]);
}方法
(二)使用ExpandableListActivity实现可展开的Activity
设置Adapter属性即可
ExpandableListAdapter adapter = new ExpandableListAdapter(){
.........
}
setListAdapter(adapter);
(三)preferenceActivity结合PreferenFragment实现参数设置界面
PreferenceActivity与普通的Activity不同,它不使用普通界面的布局文件,而是使用选项设置的布局文件.以PreferenceScreen作为根元素。
重写public void onBuildHeaders(List<Header> targer)
{
}
(四)开启和关闭Activity
启动方法
startActivity(Intent intent)
startActivityForResult(Intent intent,int requestCode)
关闭方法
finish()
finishActivity(int requestCode)
(五)使用Bundlw在Activity中交换数据
把需要交换的数据放入Intent即可。
Intent提供了多个重载的方法来携带额外的数据
putExtras(Bundle data)
Bundle getExtras()
putExtra(String name,Xxx value) 向Intent中按照Key,value存储数据
getXxxExtra(String name) 从Intent按照Key提取数据

Bundle对象提供了多个方法来存入数据
putXxx(String key,Xxx data) 向Bundle中按照key,value存储数据
putSerializable(String key,Serializable data) 向Bundle中存储一个可序列化的对象
getXxx(String key) 从Bundle中取出数据
getSerializable(String key,Serializable data) 从Bundle中取出一个可序列化的对象

(六)启动其它Activity并返回结果
在当前Activity中重写onActivityResult(int requestCode,int resultCode,Intent intent),并且用startActivityForResult(Intent intent,int requestCode)启动Intent。
被调用的Activity需要调用setResult()方法设置处理结果。
(七)Activity的回调机制
1.四种状态:
运行状态 onCreate(),onStart(),onResume()/从停止状态调用onRestart()/从暂停状态调用onRestart()方法。
暂停状态 onPause()
停止状态 onStop()
销毁状态 onDestroy()
2.四种加载模式:
standard:标准模式,默认的加载模式。Android为目标Activity创建一个新的实例。并将该Activity添加到当前Task栈中。这种模式不会启动新的Task
singleTop:Task栈顶单例模式。 当要启动的Activity位于栈顶时,系统不会创建新的Activity实例。而是直接复制已有的Activity实例
singleTask:Task内单例模式 在一个Task内只有一个实例,而且将要启动的Activity位于栈顶
singleInstance:全局单例模式 无论从哪个Task启动同一个Activity,只会创建一个Activity实例。并将会使用一个全新的Task栈来加载该Activity实例。所以每一个Task只会包含一个Activity实例。指定<Activity>的android:exported="true",android:launchMode="singleInstance属性"
(八)Fragment详解
Fragment必须嵌入Activity中使用。所以,当Activity暂停时,其内部所有的Fragment也都会暂停,销毁也一样。
Activity可以调用FragmentManager的findFragmentById()或findFragmentByTag()方法获得Fragment
在Activity运行过程中可以调用FragmentManager的add(),remove(),replace()方法动态的添加,删除,或替换Fragment。
一个Activity可以组合多个Fragment,反过来一个Fragment也可以被多个Activity复用。
一个Fragment可以响应自己的输入事件,并拥有自己的生命周期,但是其生命周期直接被所属的Activity控制。
1.创建Fragment
Fragment拥有DialogFragment,ListFragment,PreferenceFragment,
WebViewFragment四个子类
需要实现onCreate(),onCreateView(),onStart(),onResume(),onPause(),onStop()等等方法
通常来说需要实现三个方法
onCreate(),当系统创建Fragment对象后回调该方法,在初始化在Fragment中必要保持的组件
onCreateView()绘制界面时回调该方法,返回值是一个View
onPause()当用户离开时回调该方法
在Activity中创建Bundle包存储数据,然后调用Fragment类的setArugments方法来把数据传给Fragment。在Fragment中采用getArugments()方法根据key值获取数据

Fragment获取它所在的Activity,调用Fragment的getActivity()方法即可返回它所在的Activity
Activity获取它包含的Fragment,调用Activity关联的FragmentManager的findFragmentById(int id)或者findFragmentByTag(String tag)


使用Fragment步骤
1.创建一个类继承ListFragment或者其他Fragment,重写onAttach(Activity activity)方法(该方法是Fragment被添加,显示到Activity时,回调该方法),onDetach(),onListItemClick(ListView listView,View view,int position,long id)等等,设置某个接口,用于与Activity交互
2.另一个类继承Fragment用作容器,重写onCreate,onCreateView()方法。设置布局文件
3.一个主类用于Activity,实现ListFragment的子类。实例化Fragment子类的对象,通过setArguments()通信,
getFragmentManager().beginTransaction().replace(R.id.XXXX,fragment).commit();实现替换Fragment容器的内容
4.在XML文件中使用<fragment  android:name="XXXListFragment"/>指定Fragment。用<FrameLayout/>指定容器存放详细信息。

Fragment管理与Fragment事务
调用popBackStack()方法将Fragment从后台栈弹出。(模拟用户按下BACK键)
调用addOnBackStackChangeListener()注册一个监听器,用户监听后台栈的变化。
如果需要添加add(),删除remove(),替换replace()Fragment,则需要借助于FragmentTransaction对象,FragmentTransaction代表Activity对Fragment执行的多个变化,最后使用commit()提交即可。
在commit()前添加.addToBackStack(null)则可以按back键返回先前一个Fragment状态。

Fragment的生命周期
运行状态 Fragment位于前台,可以获取焦点
暂停状态 其它Activity位于前台,Fragment依旧可见,但不能获取焦点
停止状态 Fragment不可见,失去焦点
销毁状态 该Fragment被完全删除,或Fragment所在的Activity被结束
onCreate()创建时被回调,只会回调一次
onCreateView()每次重绘Fragment时被回调
onActivityCreate()当Activity被启动完成后回调该方法
onStart()启动Fragment时被回调
onResume()恢复Fragment时回调,onStart()方法后一定会回调onResume()
onPause()暂停Fragment时回调
onStop()停止Fragment时回调
onDestroy()销毁Fragment时回调,只会回调一次
onDetach()将Fragment从Activity中删除,替换完成后回调该方法。在onDestroy()方法后一定会回调onDetach()方法。该方法只会被回调一次。
onAttach()当Fragment被添加,显示到Activity时,回调该方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值