android项目实战 Android JetPack架构篇,一个实战项目带你学懂JetPack( 四 )


以下是WordViewModel的实现:
publicClassWordViewModelExtendsandRoidViewModel {
private word repository mRepository;
隐私数据&lt。列表&lt。Word & gt&gt。mAllWords
公共视图模型(应用程序应用程序){
super(应用);
mRepository = newWordRepository(应用程序);
【android项目实战 Android JetPack架构篇,一个实战项目带你学懂JetPack】mall words = mrepository . getall words();
}
LiveData&lt。列表&lt。Word & gt&gt。getAllWords(){ returnmalllwords;}
public void insert(Word Word){ mrepository . insert(Word);}
}
警告:不要将上下文传递给ViewModel实例。不要在视图模型中存储活动、片段或视图实例或它们的上下文。
添加XML布局 在value/stys . XML中添加列表项的样式:
& lt!-回收视图项目的默认字体太小。
边距是单词之间的简单分隔符。->;
& ltstylename="word_title " >
& ltitem name = " Android:layout _ width " & gt。match_parent&lt。/item&gt。
& ltitem name = " Android:layout _ height " >26dp&lt。/item&gt。
& ltitemname="android:textSize " >24sp&lt。/item&gt。
& ltitemname="android:textStyle " >bold&lt。/item&gt。
& ltitem name = " Android:layout _ MarginBottom " >6dp&lt。/item&gt。
& ltitemname="android:paddingLeft " >;8dp&lt。/item&gt。
& lt/style&gt。
添加布局/recycle view _ item . XML布局:
& lt?xml version="1.0 "编码="utf-8 "?&gt。
& ltlinelayoutxmlns:Android = " http://schemas . Android . com/apk/RES/Android "
android:orientation= "垂直" Android:layout _ width = " match _ parent "
Android:layout _>
& lt带边框的
安卓:id="@+id/textView "
style="@style/word_title "
Android:layout _ width = " match _ parent "
Android:layout _ height = " wrap _ content "
Android:background = " @ Android:color/holo _ orange _ light "/& gt;
& lt/LinearLayout >
在布局/内容_主. xml中,将文本视图替换为循环视图:
& ltAndroid . support . V7 . widget . recycle view
Android:id = " @+id/recycle view "
Android:layout _ width = " match _ parent "
Android:layout _ height = " match _ parent "
Android:background = " @ Android:color/dark _ gray "
工具:list item = " @ layout/recycle view _ item "/& gt。
浮动动作按钮(FAB)应该对应于可用的动作。在布局/活动. xml文件中,给浮动操作按钮一个+符号图标:
在Layout/Activitymain.xml文件中,选择File>New>VectorAsset。选择Material Icon。点击Android机器人图标:点field, 然后选 + (“add”) 资源。按以下方式更改布局文件代码。Android:src = "http://9.com/xinwen/shehui/ @ draw able/IC _ add _ black _ 24dp "
添加回收视图
您将在RecycleView中显示数据,这比将数据扔进TextView要好。请注意,适配器中的mWord变量缓存数据。在下一个任务中,添加自动更新数据的代码。还请注意,getItemCount()方法需要优雅地考虑数据尚未准备好且mWord仍然空的可能性。
添加一个WordListAdapter类,扩展了ReccyclerView。适配器..
这是代码:
publicClassWordListAdapterExtendsRecyclerView。适配器&lt。WordListAdapter。WordViewHolder&gt。{
classwordviewholderexTendsrecyclerview。ViewHolder{
privatefiltextview WordItemView;
privateWordViewHolder(查看项目视图){
super(ItemView);
WordItemView = ItemView . FindViewByID(r . id . TextView);
}
}
privatefilelayoutinflater mInflater;
privateList&lt。Word & gtmWords//单词的缓存副本
WordListAdapter(Context Context){ MinFlater = layoutInFlater . from(Context);}
@覆盖
publicWordViewholder OnCreateViewholder(视图组父级,intviewType){

推荐阅读