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解析,得出的结果为:\n" + province.toString());

                textView.append("\n----------------\n");

            } 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解析,得出的结果为:\n" + province.toString());

            textView.append("\n----------------\n");

        }

    }

 


    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("结果为:\n" + pro.toString());

            textView.append("\n----------------\n");

        }

    }

 

}

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

 

posted @ 2020-08-23 00:40  晨起  阅读(116)  评论(0编辑  收藏  举报