Android 使用Json表情包

 

 

类似这样的格式

public class GetJsonDataUtil {public String getJson(Context context, String fileName) {StringBuilder stringBuilder = new StringBuilder();try {AssetManager assetManager = context.getAssets();BufferedReader bf = new BufferedReader(new InputStreamReader(assetManager.open(fileName)));String line;while ((line = bf.readLine()) != null) {stringBuilder.append(line);}} catch (IOException e) {e.printStackTrace();}return stringBuilder.toString();}
}
   List<String> list = new ArrayList<>();String JsonData = new GetJsonDataUtil().getJson(this, "emoji.json");//获取assets目录下的json文件数据try {JSONObject jsonObject = new JSONObject(JsonData);Iterator<String> keys = jsonObject.keys();while(keys.hasNext()){//next()返回的数据是Object型,需要强制转化String info = (String)keys.next();//输出遍历的每一个元素JSONArray jsonArray = jsonObject.optJSONArray(info);for (int i = 0; i < jsonArray.length(); i++) {String string = jsonArray.getString(i);list.add(string);}}} catch (JSONException e) {e.printStackTrace();}MyAdapter myAdapter = new MyAdapter(R.layout.item, list);RecyclerView rv = findViewById(R.id.rv);rv.setLayoutManager(new LinearLayoutManager(MainActivity.this));rv.setAdapter(myAdapter);
public class MyAdapter extends BaseQuickAdapter<String, BaseViewHolder> {public MyAdapter(int layoutResId, @Nullable List<String> data) {super(layoutResId, data);}@Overrideprotected void convert(@NotNull BaseViewHolder baseViewHolder, String s) {SpanUtils.with((TextView) baseViewHolder.getView(R.id.tv)).append("第一个").setFontSize(20,true).append(s).setFontSize(20+baseViewHolder.getAdapterPosition()%20,true).append("第"+baseViewHolder.getAdapterPosition()+"个").create();}
}

类似的json文件引用..

省市区文件

JsonBean

public class JsonBean implements IPickerViewData {/*** name : 省份* city : [{"name":"北京市","area":["东城区","西城区","崇文区","宣武区","朝阳区"]}]*/private String name;private List<CityBean> city;public String getName() {return name;}public void setName(String name) {this.name = name;}public List<CityBean> getCityList() {return city;}public void setCityList(List<CityBean> city) {this.city = city;}// 实现 IPickerViewData 接口,// 这个用来显示在PickerView上面的字符串,// PickerView会通过IPickerViewData获取getPickerViewText方法显示出来。@Overridepublic String getPickerViewText() {return this.name;}public static class CityBean {/*** name : 城市* area : ["东城区","西城区","崇文区","昌平区"]*/private String name;private List<String> area;public String getName() {return name;}public void setName(String name) {this.name = name;}public List<String> getArea() {return area;}public void setArea(List<String> area) {this.area = area;}}
}
public ArrayList<JsonBean> parseData(String result) {//Gson 解析ArrayList<JsonBean> detail = new ArrayList<>();try {JSONArray data = new JSONArray(result);Gson gson = new Gson();for (int i = 0; i < data.length(); i++) {JsonBean entity = gson.fromJson(data.optJSONObject(i).toString(), JsonBean.class);detail.add(entity);}} catch (Exception e) {e.printStackTrace();}return detail;}
 String JsonData = new GetJsonDataUtil().getJson(this, "province.json");//获取assets目录下的json文件数据ArrayList<JsonBean> jsonBean = parseData(JsonData);//用Gson 转成实体

 

for (int i = 0; i < jsonBean.size(); i++) {//遍历省份ArrayList<String> cityList = new ArrayList<>();//该省的城市列表(第二级)ArrayList<ArrayList<String>> province_AreaList = new ArrayList<>();//该省的所有地区列表(第三极)for (int c = 0; c < jsonBean.get(i).getCityList().size(); c++) {//遍历该省份的所有城市String cityName = jsonBean.get(i).getCityList().get(c).getName();cityList.add(cityName);//添加城市ArrayList<String> city_AreaList = new ArrayList<>();//该城市的所有地区列表//如果无地区数据,建议添加空字符串,防止数据为null 导致三个选项长度不匹配造成崩溃/*if (jsonBean.get(i).getCityList().get(c).getArea() == null|| jsonBean.get(i).getCityList().get(c).getArea().size() == 0) {city_AreaList.add("");} else {city_AreaList.addAll(jsonBean.get(i).getCityList().get(c).getArea());}*/city_AreaList.addAll(jsonBean.get(i).getCityList().get(c).getArea());province_AreaList.add(city_AreaList);//添加该省所有地区数据}/*** 添加城市数据*/options2Items.add(cityList);/*** 添加地区数据*/options3Items.add(province_AreaList);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/68763.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一招教你使用微信隐藏表情!

点击上方蓝色“程序猿DD”&#xff0c;选择“设为星标” 回复“资源”获取独家整理的学习资料&#xff01; 前言 上周&#xff0c;曾介绍过微信最新的一次更新内容&#xff0c;其中一个更新热点就是新增了六个小黄脸系列的表情。 没了解过的小伙伴可以点击阅读&#xff1a;不讲…

邮箱地址注册申请能免费注册吗?

一键发送完周末的团建事宜&#xff0c;就在准备下班啦&#xff0c;用了VIP邮箱&#xff0c;工作效率提升了这么多。想想自己刚刚工作时&#xff0c;发个邮件通知需要1个小时&#xff0c;有时一不小心还会误发邮件&#xff0c;又累还容易犯错。 后来在朋友的建议下注册了TOM VI…

Mail邮箱一注册就被封?那是你没找对Mail邮箱注册教程

Mail邮箱&#xff0c;这是一个老牌的美国信箱&#xff0c;为什么东哥今天会提起这个邮箱呢&#xff0c;因为Mail.com邮件系统托管在aol.com服务器上&#xff0c;mail.com与其他国际邮箱相比&#xff0c;最大的特点在于它支持很多后缀信箱&#xff0c;这些分身信箱也都可以使用&…

【ti0sCTF】靶场平台新体验

Web ti0s{6745d556-aab0-082d-7f52-6c40b749f148}Flag{W0_sH1_JI0_ed}发现&#xff1f; 既然不能做&#xff0c;那就放几道题给大家看一下 Misc Crypto JXUyNjY5JXUyNjZDJXUyNjZDJUI2JXUyMDE2JXUyMDE2JXUyNjY5JXUyNjZCJXUyNjZCJXUyNjZBJXUyMDE2JXUyMjJFJXUyMDE2JXUyNjZDJXUyMDE…

4款让人骄傲的国产软件,功能过于强大,却被误认为是外国佬研发

国产软件往往被贴上“流氓、弹屏、套路深”等负面标签。出于偏见&#xff0c;一些功能强大的良心国产软件&#xff0c;却被误认为成外国人开发的。 下面4款实用软件为“国产”正名&#xff0c;扭转许多人的误解。 1、PDFelement 一款以英文命名&#xff0c;却很了不起的国产…

cFosSpeed(网络加速器软件)官方中文版V11.10.2483 | 网络优化大师 | 绝佳的电脑网络延迟解决方法

cfosspeed是什么软件&#xff1a;cFosSpeed是来自德国的一款超级强悍的效果突出的电脑网络优化软件&#xff0c;2004年开始第一个版本持续到今天&#xff0c;非常注重中国市场&#xff0c;可以对广大上网用户的网络质量以及本地延迟进行彻底优化&#xff0c;cFosSpeed使用流量塑…

混沌反馈共享和群体协同效应的蝴蝶优化算法—附代码

混沌反馈共享和群体协同效应的蝴蝶优化算法 文章目录 混沌反馈共享和群体协同效应的蝴蝶优化算法1.蝴蝶优化算法2. 改进蝴蝶优化算法2.1 Hnon混沌映射2.2 反馈共享机制2.3 群体协同效应位置更新机制 3.实验结果4.参考文献5.Matlab代码6.Python代码 摘要&#xff1a;针对蝴蝶优化…

蛋糕瓜分殆尽 谁会成为下一个手游造富的加速器?

本文转自主办方官方报道。 过去的2015年里&#xff0c;手游行业经历了大浪淘沙般的洗礼&#xff0c;掌上游戏的蛋糕似乎已经被大厂瓜分殆尽&#xff0c;留给中小团队和独立开发者的生存空间越来越狭窄。想要在风卷残涌的环境中再淘到一桶金变得难上加难&#xff0c;那么手游市场…

“干翻”GPT-3,Meta 用开源发起攻势

整理 | 彭慧中 责编 | 屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 大型语言模型&#xff0c;即具有超过 1000 亿个参数的自然语言处理&#xff08;NLP&#xff09;系统&#xff0c;在过去几年中改变了 NLP 和 AI 研究。这些模型经过大量文本训练&#xf…

听说,这届飞桨社区的框架贡献者真的很“卷”

飞桨平台的快速发展&#xff0c;与开源开放密不可分。飞桨框架建设并非只靠百度工程师&#xff0c;也离不开热爱飞桨、热爱开源的开发者们&#xff0c;他们用自己的方式参与飞桨框架建设&#xff0c;与飞桨共同成长。 为了鼓励更多的开发者参与到飞桨社区的开源建设中&#xff…

基于MemFire Cloud创建Posts社交网络论坛应用实战

MemFireDB&#xff0c;带你体验不一样的云端飞翔。 MemFire Cloud是一款提供云数据库&#xff0c;用户可以创建云数据库&#xff0c;并对数据库进行管理&#xff0c;还可以对数据库进行备份操作。它还提供后端即服务&#xff0c;用户可以在1分钟内新建一个应用&#xff0c;使用…

百度网盘加速|火狐插件global speed挂了?不用担心有新方法

考研党去考了个期末考试&#xff0c;回来继续看百度网盘就发现之前的插件用不起来了&#xff0c;心里拔凉拔凉的&#xff0c;赶快上网搜罗各种方法期待奇迹出现。 那就浅浅的解决一下问题吧&#xff01;&#xff08;忙着期末周&#xff0c;写的略微粗糙~&#xff09; 百度网盘…

【游戏逆向】老飞飞怀恋魅力爱玩等老飞飞瞬移分析代码

【游戏逆向】老飞飞怀恋魅力爱玩等老飞飞瞬移分析代码 在游戏中&#xff0c;每个人物都有一个坐标。x坐标和y坐标。老飞飞也一样&#xff0c;可能有些朋友用ce找到当前的人物坐标。然后修改坐标就能达到瞬移到效果。不过有些老飞飞是无法实现的。只要瞬移就会掉客户端。今天就…

【网站加速器】浏览器一键加速神器SpeedyFox

你好呀&#xff01;我是小易同学&#xff0c;一名普通的不能再普通的学习者。 写文章是为了记录自己的学习过程&#xff0c;同时也希望能帮助到需要的人。 如果我的文章对您有帮助&#xff0c;请不要忘记关注我哦&#x1f970; 一、介绍 SpeedyFox可以对Chrome浏览器、Edge、火…

Aeraki Mesh 正式成为CNCF沙箱项目,腾讯云携手合作伙伴加速服务网格成熟商用

作者&#xff1a;腾讯云高级工程师 赵化冰 刚刚获悉&#xff0c;由腾讯云主导&#xff0c;联合百度、灵雀云、腾讯音乐、滴滴、政采网等多家合作伙伴发起的服务网格开源项目 Aeraki Mesh 通过了全球顶级开源基金会云原生计算基金会&#xff08;CNCF&#xff09;技术监督委员会…

一文纵览Umi‘s Friends生态,GameFi浪潮的变革者

以“P2E”为特性的 GameFi&#xff0c;代表着游戏时代的新盈利模式&#xff0c;它将 NFT 或其他形式的代币化资产作为游戏内容&#xff0c;游戏内资产的寿命会&#xff0c;则随着这些资产继续存在于玩家的钱包中而延长&#xff08;即便游戏关闭&#xff09;&#xff0c;资产的互…

一个骨灰级玩家的游戏加速器使用心得分享

骨灰级玩家可能算不上&#xff0c;但绝对算得上是一个stream的忠实玩家。虽然不能像大部分玩家一样天天吃鸡&#xff0c;但是作为一个stream的忠实玩家&#xff0c;也会经常玩《CSGO》、《全境封锁》、《GAT5》之类的游戏。在steam上也前前后后大概买了六七款游戏。 玩单机游戏…

高校如何学习思政课程?关键技术是这个

高校多方位多角度动态的进行质量监控&#xff0c;不断促进思政课程转变教学理念、改革教学方法&#xff0c;提高思政课的针对性、吸引力和感染力。 思政课程是高校落实立德树人根本任务&#xff0c;推进三全育人纵深发展的关键环节&#xff0c;与作为立德树人关键课程的思政课同…

AI in Finance<量化交易人工智能金融投资>(上)

投资有风险&#xff0c;操作需谨慎&#xff01;&#xff01;&#xff01;&#xff01; 本文为个人笔记&#xff0c;请审核通过&#xff0c;谢谢 不管多么优秀的统计模型都有局限&#xff0c;风险控制永远都要放到第一位&#xff01; 分散化不要把鸡蛋放在一个篮子里&#xff0…

chatgpt赋能python:Python考试怎么办?一份高效备考指南

Python考试怎么办&#xff1f;一份高效备考指南 作为一名有10年Python编程经验的工程师&#xff0c;笔者认为在备考Python考试时需要注意以下几点&#xff1a; 1. 了解考试内容和考试形式 在备考时需要明确Python考试的大致内容和考试形式。Python考试通常包含Python基础语法…