• (第二阶段)冲刺六


    徐利峰:

    一、学习分享亮点加入

    我在学习分享板块加入“课后题”,“往届期末相关试卷及答案”,“网课答案”等内容,通过一个广告链接接入到改页面,然后在该页面设计的形式有:最近阅读习题(保留用户的观看数据),全部相关习题展示

    因为该应用是服务与本校的学生,因此所选用的教材也是本学校发布的,免去学生上网去查找答案的痛苦。

      具体实现就是接下来要开始攻克的地方。

      

     二、自动登录实现

    针对用户使用角度而言,不愿意重复的趣输入账号和密码,因此只在用户第一次登录时输入用户名和密码,此外便不需要在输入,直接登录,这里用到的技术是sharepreference的读取与修改

    所用到的方法:

    //将数据存储进入共享参数
        public boolean saveMsg(String fileName, Map<String, Object> map) {
            boolean flag = false;
            // 一般Mode都使用private,比较安全
            SharedPreferences preferences = getSharedPreferences(fileName,
                    Context.MODE_PRIVATE);
            SharedPreferences.Editor editor = preferences.edit();
            // Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集。
            // 接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,
            // 因此,上面的代码可以被组织得更符合逻辑
            for (Map.Entry<String, Object> entry : map.entrySet()) {
                String key = entry.getKey();
                Object object = entry.getValue();
                // 根据值得不同类型,添加
                if (object instanceof Boolean) {
                    Boolean new_name = (Boolean) object;
                    editor.putBoolean(key, new_name);
                } else if (object instanceof Integer) {
                    Integer integer = (Integer) object;
                    editor.putInt(key, integer);
                } else if (object instanceof Float) {
                    Float f = (Float) object;
                    editor.putFloat(key, f);
                } else if (object instanceof Long) {
                    Long l = (Long) object;
                    editor.putLong(key, l);
                } else if (object instanceof String) {
                    String s = (String) object;
                    editor.putString(key, s);
                }
            }
            flag = editor.commit();
            return flag;
    
        }
    
        // 读取数据
        public Map<String, String> getMsg(String fileName) {
            Map<String, String> map = null;
            // 读取数据用不到edit
            SharedPreferences preferences = getSharedPreferences(fileName,
                    Context.MODE_PRIVATE);
            //Context.MODE_APPEND可以对已存在的值进行修改
            map = (Map<String, String>) preferences.getAll();
            return map;
        }
    View Code

    应用在app上的相关代码:

    HashMap<String, String> loginmap = null;
            loginmap= (HashMap<String, String>) getMsg("login");
            if(loginmap.get("id")!=""&&loginmap.get("name")!=""&&loginmap.get("imguser")!="")
            {
                Log.i("map", loginmap.toString());
                IMLogin(loginmap.get("id"));
                startActivity(new Intent(Login.this, MainActivity.class)
                        .putExtra("id", loginmap.get("id"))
                        .putExtra("name",loginmap.get("name"))
                        .putExtra("imguser",loginmap.get("imguser")));
            }
            login_btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    final String name = search.getText().toString();
                    String userpwd = pwd.getText().toString();
                    final String reqdata = "method=login&name=" + name + "&pwd=" + userpwd + "";
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                final JSONObject jsonObject = new JSONObject(String.valueOf(HttpUtil.sendPost(requrl, reqdata)));//子线程获取json结果
                                Log.d("login", jsonObject.toString());
                                runOnUiThread(new Runnable() {    //主线程运行跳转活动
                                    @Override
                                    public void run() {
                                        try {
                                            Toast.makeText(Login.this, jsonObject.get("msg").toString(), Toast.LENGTH_SHORT).show();
                                            if (jsonObject.get("status").equals("1")) {  //状态码1代表登陆成功
                                                if (!judgeUserExists(name))
                                                    recordUser(name);
                                                IMLogin(jsonObject.getString("id"));
                                                startActivity(new Intent(Login.this, MainActivity.class)
                                                        .putExtra("id", jsonObject.get("id").toString())
                                                        .putExtra("name",name)
                                                        .putExtra("imguser",jsonObject.getString("imguser")));
                                                HashMap<String, Object> map = new HashMap<String, Object>();
                                                map.put("id", jsonObject.get("id").toString());
                                                map.put("name",name);
                                                map.put("imguser",jsonObject.getString("imguser"));
                                                saveMsg("login", map);
                                            }
                                        } catch (JSONException e) {
                                            e.printStackTrace();
                                        }
                                    }
                                });
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    }).start();
                }
            });
    View Code

    通过存储和读取来实现用户的自动登录,同时当你选择退出登录后,那么修改sharepreference的值,让他为空

    HashMap<String, Object> map = new HashMap<String, Object>();
                    map.put("id","");
                    map.put("name","");
                    map.put("imguser","");
                    if(saveMsg("login", map))
                    {
                        Intent intent=new Intent(getActivity(), Login.class);
                        startActivity(intent);
                        getActivity().finish();
                    }
    View Code

    明天任务:实现课后题布局与上传书籍功能

    李浩:

    完成我的博客列表展示博客删除功能:

    效果图:

      

    明日任务:完成消息列表的显示。

  • 相关阅读:
    android AudioManager AUDIOFOCUS
    uboot环境变量实现分析
    观察者模式总结
    【BZOJ3270】博物馆 概率DP 高斯消元
    从零開始学android&lt;TabHost标签组件.二十九.&gt;
    怎样在Web项目中的service业务层获取项目根路劲
    TexturePacker 算法
    [leetCode 75] Sort Colors
    无人车可能导致器官捐献者短缺以及吸烟率下降:4星|《无人驾驶,十万亿美元的大饼怎么分?》
    如何寻找颠覆式创新的机会,《创新者的窘境》作者二十年磨一剑:4星|《与运气竞争》
  • 原文地址:https://www.cnblogs.com/xlk3/p/12977556.html
Copyright © 2020-2023  润新知