首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

QuickSearcheBox-SearchWidgetConfigActivity

2012-08-26 
QuickSearcheBox---SearchWidgetConfigActivity再把QuickSearchBox放到桌面前,会先触发它的ConfigAcitivty

QuickSearcheBox---SearchWidgetConfigActivity
再把QuickSearchBox放到桌面前,会先触发它的ConfigAcitivty,而这个config是对search 范围的选择:All, Web, Contact,Music...它的表现形式会有两种选择:一种是用ListView,另一种是用GridView.那么这里就会用到接口编程了。
我们先来看看用ListView显示的做法:Google将header+listview这样Activity用一个叫ChoiceActivty来实现,这样独立的模块,我们以后再开发的过程,若有需要也可以直接拿来用了,这样就做到了代码的重复利用了。


SearchWidgetConfigActivity就会继承ChoiceActivity:
从setAdapter(CorporaAdapter.createListAdapter(getViewFactory(), getCorpusRanker()));不管是ListView还是用GrideView都会用到Adapter.




这里就用到了接口编程的思想了:将一些规则抽象到CorpusViewFactory里面,那么通过CorpusViewFactory直接调用,不用管是如何实现的。真正的实现是在CorpusViewInflater。从代码看来若你想把ListView换成Gridview来表现,只需修改小部分代码:
1,SearchWidgetConfigActivity中:
@Override
    protected void onStart() {
        setAdapter(CorporaAdapter.createListAdapter(getViewFactory(), getCorpusRanker()));
        super.onStart();
    }
-->

@Override
    protected void onStart() {
        setAdapter(CorporaAdapter.createGridAdapter(getViewFactory(), getCorpusRanker()));
        super.onStart();
    }
2,ChoiceActivity中的choice_activity.xml
中的ListView换成GridView就可以了。
从这个例子中,可以看出了接口编程思想的重要与方便性。也许我讲得不是很清楚很明白,语言表达能力有限,只可意会不可言传。呵呵...

今天才发现,其实QuickSearchBox也用了GridView来显示search 范围的,是在CorpusSelectionDialog。
ListView的效果可以看附件里面的Listview.png,GridView看Gridview.png

热点排行