zoukankan      html  css  js  c++  java
  • 安卓权威编程指南 挑战练习 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>

    然后在CrimeListFragment中设置TextView 和 Button 的全局变量

    private TextView mTextView;
    
        private Button mClick;

    之后在onCreateView()方法中对这两个变量进行初始化,并对Button 设置点击事件,这里的点击事件和Menu菜单项的点击事件相同

     1 mTextView = (TextView)view.findViewById(R.id.crime_set_empty_text_view);
     2         mClick = (Button)view.findViewById(R.id.click);
     3         mClick.setOnClickListener(new View.OnClickListener() {
     4             @Override
     5             public void onClick(View v) {
     6                 Crime crime = new Crime();
     7                 CrimeLab.get(getActivity()).addCrime(crime);
     8                 Intent intent = CrimePagerActivity.newIntent(getActivity(),crime.getId());
     9                 startActivity(intent);
    10             }
    11         });

    之后在updateUI()方法中添加如下代码

    1 if(crimes.size() > 0){
    2             mTextView.setVisibility(View.GONE);
    3             mClick.setVisibility(View.GONE);
    4         }else{
    5             mTextView.setVisibility(View.VISIBLE);
    6             mClick.setVisibility(View.VISIBLE);
    7         }

    代码的含义是当Crimes集合不为空时,对mTextView及mClick进行隐藏,否则进行显示.

      

  • 相关阅读:
    随机森林算法参数调优
    BAYES和朴素BAYES
    阿里云 金融接口 token PHP
    PHP mysql 按时间分组 表格table 跨度 rowspan
    MySql按周,按月,按日分组统计数据
    PHP 获取今日、昨日、本周、上周、本月的等等常用的起始时间戳和结束时间戳的时间处理类
    thinkphp5 tp5 会话控制 session 登录 退出 检查检验登录 判断是否应该跳转到上次url
    微信 模板消息
    php 腾讯 地图 api 计算 坐标 两点 距离 微信 网页 WebService API
    php添加http头禁止浏览器缓存
  • 原文地址:https://www.cnblogs.com/chase1/p/7183355.html
Copyright © 2011-2022 走看看