• day 19 第三周周总结


    今天本来想实现一个顶部导航栏的点击事件遇到了一个关于menu的坑,弄了小半天。

     本来是想实现点击几个小图标实现界面跳转,但是我不知道这个点击事件怎么搞,按照我学习按钮的点击事件,首先我得先findViewById(R.id.?),但是布局文件里没有描述这个按键,它的引入是通过tool.inflateMenu(R.menu.menu_car);然后我去搜menu的点击事件的实现方法 都是改写这两个方法

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu,menu); 
    return true; 
    }
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()){
        case R.id.action_kefu:
    
            Toast.makeText(mcontext,"已经添加到购物车了,快去看看吧!",Toast.LENGTH_SHORT).show();
    
            break;
        case R.id.action_fenxiang:
    
            Toast.makeText(mcontext,"快去看看吧!",Toast.LENGTH_SHORT).show();
            break;
        default:
            break;
    }
    
    return true; 
    }

    但是我的Fragment没有这个getMenuInflater()方法,行不通他是要在Activity中能用的,我这不能用。

    然后我还是想从set一个点击事件解决终于让我瞎猫碰到死耗子了Toolbar 的实例tool就以充当对象

    tool.inflateMenu(R.menu.menu_car);
    tool.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    switch (item.getItemId()){
                        case R.id.action_kefu:
    
                            Toast.makeText(mcontext,"客服!",Toast.LENGTH_SHORT).show();
    
                            break;
                        case R.id.action_fenxiang:
    
                            Toast.makeText(mcontext,"分享!",Toast.LENGTH_SHORT).show();
                            break;
                        default:
                            break;
                    }
                    return false;
                }
            });

     本周还是继续完成我的android app随手快递项目, 首先把上周未完成的登录注册功能继续完成。

    1、首先对json数据解析的简单学习

    package com.example.jsonparsetest;
    
     
    
    import java.util.ArrayList;
    
    import java.util.List;
    
     
    
    import org.json.JSONArray;
    
    import org.json.JSONObject;
    
     
    
    import android.app.Activity;
    
    import android.os.Bundle;
    
    import android.text.TextUtils;
    
    import android.view.View;
    
    import android.widget.TextView;
    
     
    
    import com.example.jsonparsetest.bean.City;
    
    import com.example.jsonparsetest.bean.Province;
    
    import com.example.jsonparsetest.utils.FileUtils;
    
    import com.google.gson.Gson;
    
     
    
    public class MainActivity extends Activity {
    
        private TextView textView;
    
     
    
        @Override
    
        public void onCreate(Bundle savedInstanceState) {
    
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.activity_main);
    
            
    
            textView = (TextView) findViewById(R.id.content);
    
            
    
        }
    
     
    
        /**android自带的JSON解析*/
    
        public void btn1Click(View view) {
    
    
            String json = FileUtils.getJSONStringFromFile(this);
    
            if(!TextUtils.isEmpty(json)){
    
                try {
    
                    //将JSON字符串转化为JSON对象
    
                    JSONObject obj = new JSONObject(json);
    
                    Province province = new Province();
    
                    //通过opt...方法,获取键对应的值
    
                    province.setId(obj.optInt("id"));
    
                    province.setName(obj.optString("name"));
    
                    //得到一个JSON数组,数组里装的city的JSON数据
    
                    JSONArray arr = obj.optJSONArray("cityList");
    
                    if(arr != null && arr.length() > 0){
    
                        List<City> cityList = new ArrayList<City>();
    
                        //遍历JSON数组得到其中的city数据
    
                        for(int i = 0; i < arr.length(); i++){
    
                            JSONObject jobj = arr.getJSONObject(i);
    
                            City city = new City();
    
                            city.setId(jobj.optInt("id"));
    
                            city.setName(jobj.optString("name"));
    
                            cityList.add(city);
    
                        }
    
                        province.setCityList(cityList);
    
                    }
    
                    //把Province对象转化为String显示出来,注意这里的Province和City对象都必须复写了toString方法
    
                    textView.append("使用Android自带的JSON解析,得出的结果为:
    " + province.toString());
    
                    textView.append("
    ----------------
    ");
    
                } catch (Exception e) {
    
                    e.printStackTrace();
    
                }
    
            }
    
        }
    
     
    
        /**Google的gson解析*/
    
        public void btn2Click(View view) {
    
            String json = FileUtils.getJSONStringFromFile(this);
    
            if(!TextUtils.isEmpty(json)){
    
                //新建一个Gson对象
    
                Gson gson = new Gson();
    
                //fromJson方法可以把一个json字符串直接转化为对应的对象
    
                Province province = gson.fromJson(json, Province.class);
    
                textView.append("使用Google的GSON解析,得出的结果为:
    " + province.toString());
    
                textView.append("
    ----------------
    ");
    
            }
    
        }
    
     
    
    
        public void btn3Click(View view) {
    
            String json = FileUtils.getJSONStringFromFile(this);
    
            if(!TextUtils.isEmpty(json)){
    
                //parseObject方法和上面的fromJson方法类似,也可以直接将一个json字符串转化为对应的对象
    
                Province pro = com.alibaba.fastjson.JSON.parseObject(json, Province.class);
    
                textView.append("结果为:
    " + pro.toString());
    
                textView.append("
    ----------------
    ");
    
            }
    
        }
    
     
    
    }

    2、Android客户端与服务器端的json数据交互 自定义封装一个httpUtil

  • 相关阅读:
    mysql 修改表
    mac下安装MySQL 5.7
    win&linux下path中%%与$ 以及;与:区别,
    PATH
    转 path设置方式
    MyEclipse乱码问题
    03 最大的数据库 information_schema介绍以及sql注入第一题题解
    02.mysql数据库 基本命令
    01.Windows进入MySQL数据库
    Web web4
  • 原文地址:https://www.cnblogs.com/chenaiiu/p/13547907.html
Copyright © 2020-2023  润新知