当前位置:网站首页 > Android编程 > 正文

android编程权威指南 第2版,Android编程权威指南(第2版)—第13章挑战练习_android编程权威指南 第2版,Android编程权威指南(第2版)—第13章挑战练习

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 挑战练习:优化字符串资源显示

这个按照书本的代码进行修改即可,效果如如下

3196eac17739

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

版权声明


相关文章:

  • Android编程权威指南[pdf]_android编程权威指南 第4版 pdf2024-10-30 13:59:02
  • android之socket编程实例_android socketio2024-10-30 13:59:02
  • Android编程权威指南第三版 第32章_android编程权威指南 第3版下载2024-10-30 13:59:02
  • Android Studio实现一个点餐系统_android点餐界面简单2024-10-30 13:59:02
  • 2022年 超详细的Android(安卓)入门编程教程_安卓编程视频教程2024-10-30 13:59:02
  • 6.2Android编程权威指南(第3版)————Android版本兼容、最低版本、目标版本、编译版本_android平板上的编程软件2024-10-30 13:59:02
  • 分享119个Android手机应用源代码总有一个是你想要的_安卓app源代码2024-10-30 13:59:02
  • Android编程9:蓝牙测试_安卓蓝牙编程2024-10-30 13:59:02
  • android编程tcp通信,Android 开发: 通信篇-TCP客户端_安卓tcp通信2024-10-30 13:59:02
  • 关于AndroidStudio如何插入图片的操作_androidstudio导入图片2024-10-30 13:59:02
  • 全屏图片