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