4. 首页模块(二)之工具类

上一节对欢迎模块进行了综述(可参见 2. 欢迎模块 进行了解),接下来将从首页模块开始详细介绍:

  • [首页模块(一)之搭建服务器]
  • [首页模块(二)之工具类]
  • [首页模块(三)之首页]
  • [首页模块(四)之新闻详情]
  • [首页模块(五)之Python学科]

知识点:

  • 掌握工具类的开发,创建工具类

工具类:

任务综述:
由于项目中会遇到多个界面重复使用同一个方法的情况,因此为了减少重复代码量,需要创建一个工具类存放这些方法,当任意一个界面需要调用该方法时,直接调用工具类中的方法即可。

1.创建Constant类

任务分析:
由于项目是从Tomcat(一台小型服务器)中获取数据并展现在各个界面上的,因此需要创建一个Constant类存放各个界面向服务器请求数据所需要的接口地址。

任务实施:
选中com.XXXX.newsdemo包,在该包下创建utils包。在utils包中创建一个Constant类。在该类中创建首页广告栏与新闻列表接口地址。

Constant.java

public class Constant {
    //内网接口
    public static final String WEB_SITE ="http://192.168.43.140:8080/newsdemo";
    //首页滑动广告接口
    public static final String REQUEST_AD_URL = "/home_ad_list_data.json";
    //首页新闻列表接口
    public static final String REQUEST_NEWS_URL = "/home_news_list_data.json";
}

2.创建JsonParse类

任务分析:
由于项目的Tomcat服务器使用的是JSON数据,需要创建一个JsonParse类解析从服务器中获取的JSON数据。

任务实施:
(1)创建JsonParse类。在com.XXXX.newsdemo.utils包中创建一个JsonParse类。
(2)添加gson库。在AS中,选择项目右击选择Open Module Settings/Dependencies/“+”/Library dependency,把com.google.code.gson:gson:2.2.4库加入主项目。
(3)调用gson库解析JSON数据。JsonParse类主要用于解析从服务器获取的JSON数据。

JsonParse.java

public class JsonParse {
    private static JsonParse instance;
    private JsonParse() {
    }
    public static JsonParse getInstance() {
        if (instance == null) {
            instance = new JsonParse();
        }
        return instance;
    }
}

3.创建UtilsHelper类

任务分析:
由于项目中部分界面会用到相同的功能,因此为了减少项目中的重复代码量与便于后续调用,需要把实现这些功能的方法抽取出来并放在一个工具类UtilsHelper中。

任务实施:
(1)创建UtilsHelper类。在utils包中创建一个UtilsHelper类。
(2)获取屏幕宽度。在UtilsHelper类中,创建一个getScreenWidth()方法用于获取屏幕宽度,在首页界面设置广告栏宽度时调用。

UtilsHelper.java

public class UtilsHelper {
    /**
     * 获得屏幕宽度
     */
    public static int getScreenWidth(Context context) {
        WindowManager wm = (WindowManager) context.getSystemService(Context.
                WINDOW_SERVICE);
        DisplayMetrics outMetrics = new DisplayMetrics();
        wm.getDefaultDisplay().getMetrics(outMetrics);
        return outMetrics.widthPixels;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_41121204/article/details/84834031