AsyncHttpClient与SmartImageView-解析服务器上的JSON文件,并将其显示到ListView控件上

发布时间:2021-12-02 21:20:35


Lesson38


    理论




    代码部分

    (1)AndroidManifest.xml
    网络权限

    (2)activity_main.xml


xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="computer.class1.appnews.MainActivity">

android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/loading"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="visible"
android:gravity="center">
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="正在加载信息..."/>

android:id="@+id/lv_news"
android:layout_width="match_parent"
android:layout_height="match_parent">




(3)list_item.xml



android:layout_width="match_parent"
android:layout_height="65dp">
android:id="@+id/siv_icon"
android:layout_width="80dp"
android:layout_height="60dp"
android:layout_alignParentLeft="true"
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:scaleType="centerCrop"
android:src="@mipmap/ic_launcher" />
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:layout_toRightOf="@id/siv_icon"
android:ellipsize="end"
android:maxLength="20"
android:singleLine="true"
android:text="我是标题"
android:textColor="#000000"
android:textSize="18sp" />
android:id="@+id/tv_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_title"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_toRightOf="@id/siv_icon"
android:ellipsize="end"
android:maxLength="16"
android:singleLine="true"
android:text="我是描述"
android:textColor="#99000000"
android:textSize="14sp" />

android:id="@+id/tv_comment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="5dp"
android:layout_marginRight="10dp"
android:text="我是评论"
android:textColor="#99000000"
android:textSize="12sp" />




(4)Utils


package lesson10.computer.lesson38;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.List;

/**
* Created by dell-pc on 2020/12/4.
*/
public class Utils {
public static List jaonParser(String json){
Gson gson = new Gson();
Type type = new TypeToken>() {
}.getType();
List lists = gson.fromJson(json, type);//从哪里解析
return lists;
}
}


(5)NewsInfo


package lesson10.computer.lesson38;

/**
* Created by dell-pc on 2020/12/4.
*/
public class NewsInfo {
private String icon; //图片路径
private String title; //新闻标题
private String content; //新闻描述
private int type; //新闻类型 1:普通新闻 2:专题 3:Live

public NewsInfo(String icon, String title, String content, int type, long comment) {
this.icon = icon;
this.title = title;
this.content = content;
this.type = type;
this.comment = comment;
}

private long comment; //新闻评论数



public String getIcon() {
return icon;
}

public void setIcon(String icon) {
this.icon = icon;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getContent() {
return content;
}

public void setContent(String content) {
this.content = content;
}

public int getType() {
return type;
}

public void setType(int type) {
this.type = type;
}

public long getComment() {
return comment;
}

public void setComment(long comment) {
this.comment = comment;
}
}


(6)MainActivity


package lesson10.computer.lesson38;

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.image.SmartImageView;

import org.apache.http.Header;

import java.io.UnsupportedEncodingException;
import java.util.List;

public class MainActivity extends AppCompatActivity {

private List newsInfos;
private ListView lvNews;
private LinearLayout loading;

//private List<>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

initView();
fillData();
}

private void initView() {
lvNews = (ListView) findViewById(R.id.lv_news);
loading = (LinearLayout) findViewById(R.id.loading);
}

private void fillData() {
AsyncHttpClient client = new AsyncHttpClient();
//第一个参数网址,第二个参数回调,在回调里更新画面
client.get(getString(R.string.serverur1), new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int i, Header[] headers, byte[] bytes) {
String json = null;
try {
json = new String(bytes,"utf-8");
newsInfos = Utils.jaonParser(json);//进行解析
//给ListView绑定数据
//创建Adapter
loading.setVisibility(View.INVISIBLE);
lvNews.setAdapter(new Myadapter());
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(MainActivity.this, "获取数据失败!", Toast.LENGTH_SHORT).show();
}


}

@Override
public void onFailure(int i, Header[] headers, byte[] bytes, Throwable throwable) {
Toast.makeText(MainActivity.this, "请求失败", Toast.LENGTH_SHORT).show();
}
});
}
//创建自定义的适配器
private class Myadapter extends BaseAdapter{

@Override
public int getCount() {
return newsInfos != null ? newsInfos.size() : 0;//个数
}

@Override
public Object getItem(int position) {
return newsInfos.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
//动态加载Layout
View view = View.inflate(MainActivity.this, R.layout.list_item, null);
SmartImageView sivIcon = (SmartImageView) view.findViewById(R.id.siv_icon);
TextView title = (TextView) view.findViewById(R.id.tv_title);
TextView content = (TextView) view.findViewById(R.id.tv_content);
TextView comment = (TextView) view.findViewById(R.id.tv_comment);

NewsInfo news = newsInfos.get(position);
sivIcon.setImageUrl(news.getIcon(),R.mipmap.ic_launcher,R.mipmap.ic_launcher);
title.setText(news.getTitle());
content.setText(news.getContent());
//新闻类型[
int type = news.getType();
//1:普通新闻 2:专题 3:LIVE
switch (type){
case 1:
comment.setText("评论"+news.getComment());
break;
case 2:
comment.setText("专题");
comment.setTextColor(Color.RED);
break;
case 3:
comment.setText("LIVE");
comment.setTextColor(Color.BLUE);
break;
}
return view;
}
}

}

相关文档

  • 关于高中朋友的赠别的留言
  • 植物的意识阅读题答案
  • 2015美团点评算法工程师笔试和面试题整理
  • 太岁基础知识
  • 2021年七年级班主任工作总结
  • 企业试用期个人转正自我鉴定
  • 西施秘史观后感
  • 个性心情日志精美范文精选
  • 关机 服务器_windows server 2012 怎样重启和关机的几种方法
  • 山西显通寺导游词
  • 三岁孩子到经济学人,秒懂人工智能AI
  • 伦敦的奥林匹克运动会初中英语作文
  • 吃酸豆有什么好处?酸豆的营养功效与作用
  • 孕妇冬天可以吃姜吗
  • 关爱生命作文700字
  • Kubernetes认证管理员(CKA)?技巧与窍门
  • 小学六年级下册语文期中试卷分析
  • 关于食品安全的手抄报资料精选
  • 我像爸爸和妈妈
  • LCD RGB 控制技术讲解 ? 时钟篇(上)
  • 应用化学专业最好的20所大学
  • 杜绝考试作弊的宣传语
  • 学前教育实习生自我鉴定范文
  • 小班教师教学计划
  • 通达oa mysql管理工具_数据库管理
  • 小学优秀作文快乐的寒假生活
  • 击碎 “后进生”的自卑外壳
  • 用对话框创建CDialogBar派生的类并在CReBar上添加
  • 2020年部门学习总结范文
  • 一年级2018春节手抄报
  • 猜你喜欢

  • 支付宝怎么管理陌生人和好友?
  • 初二作文:人心似海作文1000字
  • 2018年七年级数学上册 第四章 几何图形的初步 4.1 几何图形 4.1.2 点线面体课时练 (新版)新人教版
  • 复*总结认识人民币
  • 糖尿病肾病患者的个性化康复护理方式与应用意义探究
  • 【K12学*】人教课标版五年级上册音乐《大家一起来》教案
  • 混凝土标号含义水泥砂浆标号强度
  • 张高兴的 Windows 10 IoT 开发笔记:RTC 时钟模块 DS3231
  • 一年级上册语文课件-汉语拼音11 ie ue er课件-新人教版 (3)(共31张PPT)
  • IOS应用在iPhone5和iPhone5s上不能全屏显示,应用画面上下各有1条黑色的解决方案
  • 法学视界中的中国农村土地流转——中国农村土地制度改革之展望
  • 哈尔滨欣网思科技有限公司企业信息报告-天眼查
  • 2021年扬州大学化学化工学院825物理化学(理)考研仿真模拟五套题
  • 手动修改设置VMware的IP地址
  • 20XX法院办公室工作总结范文[1]
  • 食用南瓜子的好处有哪些
  • 西藏高原生态安全屏障的保护与建设
  • 1 E.1 分部分项工程量清单计价表
  • 最新-2019年企业环保工作总结范文 精品
  • 社区服务记录表
  • 青岛版四年级数学下册乘法结合律、交换律的应用ppt
  • 七年级语文山市课件1(2019年9月)
  • 九年级化学上册第7单元燃料及其利用课题1燃烧和灭火同步课件(新版)新人教版
  • 2017年大学生党课学*总结1500字
  • 江苏省南通市实验中学初中七年级历史下册《和同为一家》名师教案 新人教版
  • 彭泉村创“五好”基层党组织汇报材料
  • Java求数组中出现次数最多的元素
  • 成都明东房屋置换有限公司企业信用报告-天眼查
  • 金融学第六讲风险管理
  • 小学家长学校活动简报
  • Android碎片(Fragment)的创建
  • 学*了邓小*理论和“三个代表”重要思想的心得
  • 休闲皮鞋配什么裤子好看
  • 小学三年级上册数学教案7.5 画数学——长方形与正方形周长解决问题1
  • 后悔的成语有哪些
  • 中国石油物资采购管理信息系统问题管理平台介绍[精品ppt课件]
  • 最新人教新目标版初一英语下册Unit6 Section A 2d—3c课件
  • 仙游县庄克制衣总公司 莆田市交通物资供应公司企业信用报告-天眼查
  • 连拱隧道施工方法研究
  • 2016年幼儿园教研活动计划范文
  • 2018年秋人教版七年级生物上册同步课件:第一单元第一章 第一节 生物的特征 (共13张PPT)
  • 东师成本会计15秋在钱作业1满分答案
  • 电脑版