万事须己运,他得非我贤。这篇文章主要讲述安卓权威编程 挑战练习 13.8 用于RecyclerView的空视图相关的知识,希望能为你提供帮助。
当前,CriminalIntent应用启动后,会显示一个空白列表。从用户体验上来讲,即使crime列表 是空的,也应展示提示或解释类信息。 请设置空视图展示类似“没有crime记录可以显示”的信息。再添加一个按钮,方便用户直 接创建新的crime记录。 判断crime列表是否包含数据,然后使用任何类都有的 setVisibility 方法控制占位视图的 显示。
首先修改fragment_crime_list视图,增加一个TextView和一个Button控件:
< RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> < android.support.v7.widget.RecyclerView android:id="@+id/crime_recycler_view" android:layout_width="match_parent" android:layout_height="match_parent"/> < TextView android:id="@+id/crime_set_empty_text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:textSize="20sp" android:text="没有数据显示"/> < Button android:id="@+id/click" android:gravity="center" android:text="Create New Crime" android:layout_width="wrap_content" android:layout_height="wrap_content"/> < /RelativeLayout>
【安卓权威编程 挑战练习 13.8 用于RecyclerView的空视图】然后在CrimeListFragment中设置TextView 和 Button 的全局变量
private TextView mTextView; private Button mClick;
之后在onCreateView()方法中对这两个变量进行初始化,并对Button 设置点击事件,这里的点击事件和Menu菜单项的点击事件相同
1 mTextView = (TextView)view.findViewById(R.id.crime_set_empty_text_view); 2mClick = (Button)view.findViewById(R.id.click); 3mClick.setOnClickListener(new View.OnClickListener() { 4@Override 5public void onClick(View v) { 6Crime crime = new Crime(); 7CrimeLab.get(getActivity()).addCrime(crime); 8Intent intent = CrimePagerActivity.newIntent(getActivity(),crime.getId()); 9startActivity(intent); 10} 11});
之后在updateUI()方法中添加如下代码
1 if(crimes.size() > 0){ 2mTextView.setVisibility(View.GONE); 3mClick.setVisibility(View.GONE); 4}else{ 5mTextView.setVisibility(View.VISIBLE); 6mClick.setVisibility(View.VISIBLE); 7}
代码的含义是当Crimes集合不为空时,对mTextView及mClick进行隐藏,否则进行显示.
推荐阅读
- aws实例部署flask报错script-timed-out-before-returning-headers-application-py
- LoaderManager使用具体解释---实例(AppListLoader)
- android开发之merge结合include优化布局
- HTML5 开发APP(打开相册以及图片上传)
- GetPathFromUri4kitkatAndroid 4.4 kitkat以上及以下根据uri获取路径的方法
- call和apply的区别
- ANDROID N 分屏设置
- 量化字符串(安卓权威编程 13.7挑战练习-优化字符串资源显示)
- Android开发之SpannableString具体解释