zoukankan      html  css  js  c++  java
  • (第二阶段)冲刺六

    徐利峰:

    一、学习分享亮点加入

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

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

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

      

     二、自动登录实现

    针对用户使用角度而言,不愿意重复的趣输入账号和密码,因此只在用户第一次登录时输入用户名和密码,此外便不需要在输入,直接登录,这里用到的技术是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

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

    李浩:

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

    效果图:

      

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

  • 相关阅读:
    什么是 bean 的自动装配?
    什么是 Spring 的内部 bean?
    什么是 Spring 的 MVC 框架?
    Spring AOP and AspectJ AOP 有什么区别?
    解释 JDBC 抽象和 DAO 模块?
    volatile 类型变量提供什么保证?
    一个 Spring Bean 定义 包含什么?
    什么是 Spring MVC 框架的控制器?
    使用 Spring 访问 Hibernate 的方法有哪些?
    什么是 Callable 和 Future?
  • 原文地址:https://www.cnblogs.com/xlk3/p/12977556.html
Copyright © 2011-2022 走看看