13.6 挑战练习:删除crime记录
这个比较简单,分三步
第一步创建一个button
第二步在CrimeLab增加删除方法
public void removeCrime(Crime c) {
mCrimes.remove(c);
}
第三步修改CrimeFragment.java的onCreateView方法,绑定按钮,增加监听事件
mRemoveButton = (Button) v.findViewById(R.id.crime_remove_button);
mRemoveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CrimeLab.get(getActivity()).removeCrime(mCrime);
getActivity().finish();
}
});
13.7 挑战练习:优化字符串资源显示
这个按照书本的代码进行修改即可,效果如如下
Criminallntent
13.8 挑战练习:用于RecyclerView的空视图
(1)修改fragment_crime_list.xml
原本只有一个RecyclerView组建,现在增加父组建,并增加一个textview和一个button
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/crime_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
android:id="@+id/no_crime_textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/no_crime"
android:layout_centerInParent="true"
android:layout_marginLeft="16dp"
android:gravity="center"
android:layout_marginRight="16dp"
style="?android:listSeparatorTextViewStyle"
android:layout_margin="15dp"/>
android:id="@+id/no_crime_add_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/no_crime_textview"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:text="@string/add_crime"
android:background="@drawable/bt_selector"/>
(2)string.xml里面加上
没有crime记录可以显示
(3)修改CrimeListFragment.java
增加两个变量
private TextView mNoCrimeTextView;
private Button mNoCrimeButton;
修改onCreateView方法为上面两个变量绑定id组件
修改updateUI()增加如下代码
public void updateUI(){
CrimeLab crimeLab = CrimeLab.get(getActivity());
List crimes = crimeLab.getCrimes();
//如果没有配置好CrimeAdapter,就创建一个CrimeAdapter
if (mAdapter == null){
//创建RecyclerAdapter
mAdapter = new CrimeAdapter(crimes);
// 然后设置给RecyclerView
mCrimeRecyclerView.setAdapter(mAdapter);
}else{
//如果已经配置好CrimeAdapter,就调用notifyDataSetChanged()
// 方法修改updateUI()方法
mAdapter.setCrimes(crimes);
// mAdapter.notifyDataSetChanged();
//实现高效的RecyclerView刷新方法
//如果想要刷新删除crime之后的CrimeListFragment,
// mAdapter.notifyItemChanged( mIndex ); //单例更新 -- 会报错
mAdapter.notifyDataSetChanged(); //全量更新
}
/*
挑战练习 用于RecyclerView的空列表
*/
if (crimes.size() == 0){
mNoCrimetextView.setVisibility( View.VISIBLE );
mNoCrimeButton.setVisibility( View.VISIBLE );
}else {
mNoCrimeButton.setVisibility( View.GONE );
mNoCrimetextView.setVisibility( View.GONE );
}
updateSubtitle();
}
具体访问我的Github:Pages
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/androidbc/2632.html