声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。
转载请保留原文出处“http://my.oschina.net/gluoyer/blog”,谢谢!
您可以到博客的“友情链接”中,“程序猿媛(最新下载)*.*”下载最新版本,持续更新!当前版本,也可直接点击“当前1.3版本”下载。
本文介绍,利用两个Fragment,并列列表展示,并可选择二级列表各个列表项。
可以用来做地区、分类等选择方式。
首先,看下实现效果:
功能的实现,主要有两个方面:
数据的配置已经Adapter的更新;
Fragment中列表项点击事件的处理。
数据的配置已经Adapter的更新
与前一篇文章中类似,在此不赘述,请查看“程序猿媛三:ExpandableListView二级菜单选择”。
Fragment中列表项点击事件的处理
如果您看过其他Fragment相关的文章,也会了解到,可以在Fragment里面添加接口,并在其所在Activity中实现,以此作为两者之间沟通的桥梁。
此示例亦如此,以左侧列表为例:
首先,在Fragment里,定义列表项点击事件监听接口,
1 |
interface onFirstListItemSelectedListener { |
[!--empirenews.page--]
2 |
public abstract void onFirstListItemSelected( int position); |
[!--empirenews.page--]
同时,在Fragment里,定义成员变量,并在onAttach(…)方法中赋值,
01 |
private onFirstListItemSelectedListener mListener; |
[!--empirenews.page--]
03 |
public void onAttach(Activity activity) { |
[!--empirenews.page--]
04 |
super .onAttach(activity); |
[!--empirenews.page--]
[!--empirenews.page--]
06 |
mListener = (onFirstListItemSelectedListener) activity; |
[!--empirenews.page--]
07 |
} catch (ClassCastException e) { |
[!--empirenews.page--]
08 |
throw new ClassCastException(activity.toString() |
[!--empirenews.page--]
09 |
+ " must implement onFirstListItemSelectedListener" ); |
[!--empirenews.page--]
[!--empirenews.page--]
最后,在Fragment列表项的点击事件中,通过回调,在Activity中进行处理了,
[!--empirenews.page--]
2 |
public void onListItemClick(ListView l, View v, int position, long id) { |
[!--empirenews.page--]
3 |
if (position == mClickPosition) { |
[!--empirenews.page--]
[!--empirenews.page--]
6 |
mListener.onFirstListItemSelected(position); |
[!--empirenews.page--]
做完上面Fragment中的设置,再来看下Activity。
需要在Fragment所在的DoubleFrgListActivity 中,实现上面的接口,重写onFirstListItemSelected方法,在其中更新右侧列表显示内容,代码如下:
01 |
public class DoubleFrgListActivity extends FragmentActivity |
[!--empirenews.page--]
02 |
implements onFirstListItemSelectedListener { |
[!--empirenews.page--]
[!--empirenews.page--]
04 |
public void onFirstListItemSelected( int position) { |
[!--empirenews.page--]
[!--empirenews.page--]
06 |
String title = titles.get(position); |
[!--empirenews.page--]
[!--empirenews.page--]
08 |
mSecondFrg.setListContent(title, contents.get(title)); |
[!--empirenews.page--]
[!--empirenews.page--]
上述,即实现了,当点击左侧列表项时,回调接口设置右侧列表的功能。 右侧列表点击类似实现,不赘述!
转载请保留地址出处“http://my.oschina.net/gluoyer/blog/177571”,谢谢!