Android 初学Fragment

来源:互联网 发布:淘宝开店过程心得体会 编辑:程序博客网 时间:2024/06/04 22:46
作为一名Android初学者,刚做了一个基于Android 4.0的项目,其中遇到很多问题,涉及到新特性方面的问题很难解决,毕竟市面上4.0的书籍很少。而Tab导航就是其中之一。下面总结了对于Android初学者而言,可能遇到的问题。
这篇文章只针对初学者。
Android 3.0以后就不再提倡使用TabHost,而是用Fragment替代。以前做Tab导航,每一栏对应一个Activity,非常方便。但是现在Fragment出来以后,整个Tab只有一个Activity了。
在这个Activity中,怎么去添加Tab导航,这里就不讲了,毕竟网上有很多教程,下面主要给出在每个Fragment中遇到的问题。
1、基本框架。
这个问题,其实不用多讲,只要涉及到这方面的书籍或者博客都会讲到。

首先要让这个java class继承Fragment类,然后实现onCreateView()函数,在这个onCreateView()函数中必须返回inflate()函数,其中包含了这个Fragment的布局文件。这就是一个最普通的Fragment。
Java code
public class ABC extends Fragment { @Override public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle saveInstanceState) { return inflater.inflate(R.layout.abc, container, false); }}

2、获取布局文件中的元素。
布局文件中一般会有TextView,Button等元素,如果采取Activity中的方式,是不能成功的。
比如
Java code
TextView textview=(TextView)findViewById(R.id.text);

这时,你有多种办法解决。
(1)直接访问绑定到该Fragment的Activity。
Java code
TextView textview=(TextView)getActivity().findViewById(R.id.text);

(2)把布局文件实例化
Java code
public class ABC extends Fragment { @Override public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle saveInstanceState) { View root=inflater.inflate(R.layout.abc, container, false); TextView textview=(TextView)root.findViewById(R.id.text); return root; }}

在Activity中使用了别的布局文件,一般需要实例化布局文件,获取其中的元素也是同样的道理。
3、跳转Activity
在Fragment中跳转到非绑定的Activity时,构建Intnet时,第一个参数是绑定的Activity,因为这是Activity与Activity之间的跳转,一样的需要用getActivity()函数。你不可能直接通过Fragment跳转到其他Activity的。
Java code
Intent intent=new Intent(getActivity(),def.class);



其实Fragment与Activity差不多,同样有自己的生命周期。但是需要注意Fragment与它绑定的Activity间的信息交互,以及Fragment与绑定到同一个Activity的Fragment间的信息交互。
做的时候问题很多,做完之后回过头来看,其实都是很简单的东西。完全是因为对Android缺乏足够的了解。
一本非常厚非常详细的书,一点点看完,那么Android已经进入新的版本,或者是消失了。所以在这种书最好作为工具书用,平时还是多做些东西练手吧。虽然你经常被困在这些常识问题上。
但是,只有在经常为这些简单的问题苦恼,才能提高自己的编程能力。
原创粉丝点击