聲明:博文為原創(chuàng),文章內(nèi)容為,效果展示,思路闡述,及代碼片段。
轉(zhuǎn)載請保留原文出處“http://my.oschina.net/gluoyer/blog”,謝謝!
您可以到博客的“友情鏈接”中,“程序猿媛(最新下載)*.*”下載最新版本,持續(xù)更新!當前版本,也可直接點擊“當前1.3版本”下載。
本文介紹,利用兩個Fragment,并列列表展示,并可選擇二級列表各個列表項。
可以用來做地區(qū)、分類等選擇方式。
首先,看下實現(xiàn)效果:
功能的實現(xiàn),主要有兩個方面:
數(shù)據(jù)的配置已經(jīng)Adapter的更新;
Fragment中列表項點擊事件的處理。
數(shù)據(jù)的配置已經(jīng)Adapter的更新
與前一篇文章中類似,在此不贅述,請查看“程序猿媛三:ExpandableListView二級菜單選擇”。
Fragment中列表項點擊事件的處理
如果您看過其他Fragment相關(guān)的文章,也會了解到,可以在Fragment里面添加接口,并在其所在Activity中實現(xiàn),以此作為兩者之間溝通的橋梁。
此示例亦如此,以左側(cè)列表為例:
首先,在Fragment里,定義列表項點擊事件監(jiān)聽接口,
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列表項的點擊事件中,通過回調(diào),在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中的設(shè)置,再來看下Activity。
需要在Fragment所在的DoubleFrgListActivity 中,實現(xiàn)上面的接口,重寫onFirstListItemSelected方法,在其中更新右側(cè)列表顯示內(nèi)容,代碼如下:
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--]
上述,即實現(xiàn)了,當點擊左側(cè)列表項時,回調(diào)接口設(shè)置右側(cè)列表的功能。 右側(cè)列表點擊類似實現(xiàn),不贅述!
轉(zhuǎn)載請保留地址出處“http://my.oschina.net/gluoyer/blog/177571”,謝謝!