实现新闻客户端案例首先需要注意XML文件的在线解析,适配器问题和ListView控件的使用。

根据自己的需要和要求,准备好素材。

1、NewsInfo.xml文件如下:

    <?xml version =“1.0”encoding =“UTF-8”?>  <新闻>  <报纸资讯>  <图标> http://10.51.9.168:8080/images1/a.jpg </图标>  <TITLE>科技温暖世界</ TITLE>  <内容>进入一个更有爱的领域</内容>  <类型> 1 </类型>  <评价> 69 </评论>  </报纸资讯>  <报纸资讯>  <图标> http://10.51.9.168:8080/images1/b.jpg </图标>  <TITLE>“神武”</ TITLE>  <内容>新美术资源盘点,视觉新体验</内容>  <类型> 2 </类型>  <评价> 35 </评论>  </报纸资讯>  <报纸资讯>  <图标> http://10.51.9.168:8080/images1/c.jpg </图标>  <TITLE>南北车正式公布合并</ TITLE>  <内容>南北车将于今日正式公布合并</内容>  <类型> 3 </类型>  <评价> 2 </评论>  </报纸资讯>  <报纸资讯>  <图标> http://10.51.9.168:8080/images1/d.jpg </图标>  <TITLE>萌呆了!汪星人抱玩偶酣睡</ TITLE>  <内容>汪星人抱玩偶酣睡,萌翻网友</内容>  <类型> 1 </类型>  <评价> 25 </评论>  </报纸资讯>  <报纸资讯>  <图标> http://10.51.9.168:8080/images1/e.jpg </图标>  <TITLE>风力发电进校园</ TITLE>  <内容>风力发电普进校园</内容>  <类型> 2 </类型>  <评价> 26 </评论>  </报纸资讯>  <报纸资讯>  <图标> http://10.51.9.168:8080/images1/f.jpg </图标>  <TITLE>地球一小时</ TITLE>  <内容>地球熄灯一小时</内容>  <类型> 1 </类型>  <评价> 23 </评论>  </报纸资讯>  <报纸资讯>  <图标> http://10.51.9.168:8080/images1/g.jpg </图标>  <TITLE>最美公路</ TITLE>  <内容>最美公路,难以想象</内容>  <类型> 1 </类型>  <评价> 23 </评论>  </报纸资讯>  </新闻>  

2、对客户端进行布局: activity_main.xml文件:

<?xml version =“1.0”encoding =“utf-8”?>
<RelativeLayout xmlns:android =“http://schemas.android.com/apk/res/android”  的xmlns:工具= “http://schemas.android.com/tools”  机器人:ID = “@ + ID / activity_main”  机器人:layout_width = “match_parent”  机器人:layout_height = “match_parent”  工具:上下文= “cn.edu.bzu.news.MainActivity”>  <的LinearLayout  机器人:ID = “@ + ID /线路1”  机器人:layout_width = “match_parent”  机器人:layout_height = “WRAP_CONTENT”>  <ListView的  机器人:ID = “@ + ID /列表1”  机器人:layout_width = “match_parent”  机器人:layout_height = “WRAP_CONTENT”>  </的ListView>  </的LinearLayout>  </ RelativeLayout>

item.xml文件:

<?xml version =“1.0”encoding =“utf-8”?>
<RelativeLayout xmlns:android =“http://schemas.android.com/apk/res/android”  机器人:layout_width = “match_parent”  机器人:layout_height = “match_parent”>  <com.loopj.android.image.SmartImageView  机器人:ID = “@ + ID / item_image”  机器人:layout_width = “80dp”  机器人:layout_height = “60dp”  android:scaleType =“centerCrop”/>  <TextView的  机器人:ID = “@ + ID / item_tv1”  机器人:layout_width = “WRAP_CONTENT”  机器人:layout_height = “WRAP_CONTENT”  android:layout_toRightOf =“@ id / item_image”/>  <TextView的  机器人:ID = “@ + ID / item_tv2”  机器人:layout_width = “WRAP_CONTENT”  机器人:layout_height = “WRAP_CONTENT”  机器人:layout_below = “@ ID / item_tv1”  机器人:layout_toRightOf = “@ ID / item_image”/>  <TextView的  机器人:ID = “@ + ID / item_tv3”  机器人:layout_width = “WRAP_CONTENT”  机器人:layout_height = “WRAP_CONTENT”  机器人:layout_alignParentRight = “真”/>
</ RelativeLayout的> 

3、MainActivity的实现代码:

import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;  import java.io.ByteArrayInputStream;
import java.util.List;  import cn.edu.bzu.news.adapter.MyAdapter;
进口cn.edu.bzu.news.entity.NewsInfo;
import cn.edu.bzu.news.service.NewsInfoService;  公共课MainActivity扩展AppCompatActivity {  私有ListView listView;  私人MyAdapter适配器  private List <NewsInfo> newsInfos;  protected void onCreate(Bundle savedInstanceState){  super.onCreate(savedInstanceState);  的setContentView(R.layout.activity_main);  的ListView =(ListView中)findViewById(R.id.list1);  加载();  }  public void load()  {  AsyncHttpClient asyncHttpClient = new AsyncHttpClient();  asyncHttpClient.get(getString(R.string.servelurl)),新的AsyncHttpResponseHandler(){  @覆盖  public void onSuccess(String content){  super.onSuccess(内容);  byte [] bytes = content.getBytes();  ByteArrayInputStream bais = new ByteArrayInputStream(bytes);  newsInfos = NewsInfoService.getNewsInfo(bais);  if(newsInfos == null)Toast.makeText(MainActivity.this,“解析失败”,Toast.LENGTH_LONG).show();  else {  adapter = new MyAdapter(MainActivity.this,R.layout.item,newsInfos);  listView.setAdapter(适配器);  Toast.makeText(MainActivity.this, “成功”,Toast.LENGTH_LONG).show();  }  }  @覆盖  public void onFailure(Throwable error,String content){  super.onFailure(误差,内容);  Toast.makeText(MainActivity.this, “请求失败”,Toast.LENGTH_LONG).show();  }  });  }  }  

4、NewsInfo.java:

public class NewsInfo {  私人字符串路径;  私人字符串标题;  私人字符串  私人长评论  public void setDes(String des){  this.des = des  }  public void setTitle(String title){  this.title = title;  }  public void setPath(String path){  this.path = path;  }  public void setComment(long comment){  this.comment =评论  }  public String getPath(){  回路  }  public String getTitle(){  返回标题  }  public String getDes(){  回报  }  public long getComment(){  返回评论  }  }  

5、NewsInfoService.java:

    import org.xmlpull.v1.XmlPullParser;  import java.io.InputStream;  import java.util.ArrayList;  import java.util.List;  进口cn.edu.bzu.news.entity.NewsInfo;  public class NewsInfoService {  public static List <NewsInfo> getNewsInfo(InputStream inputStream)  {  XmlPullParser parser = Xml.newPullParser();  尝试{  parser.setInput(的inputStream, “UTF-8”);  int type = parser.getEventType();  列表<NewsInfo> newsInfos = null;  NewsInfo newsInfo = null;  而(键入!= XmlPullParser.END_DOCUMENT)  {  开关(类型){  case XmlPullParser.START_TAG:  if(“news”.equals(parser.getName()))  newsInfos = new ArrayList <NewsInfo>();  else if(“newsInfo”.equals(parser.getName()))  newsInfo = new NewsInfo();  else if(“icon”.equals(parser.getName())){  String icon = parser.nextText();  newsInfo.setPath(图标);  } else if(“title”.equals(parser.getName())){  String title = parser.nextText();  newsInfo.setTitle(标题);  } else if(“content”.equals(parser.getName())){  String des = parser.nextText();  newsInfo.setDes(DES);  } else if(“comment”.equals(parser.getName())){  String comment = parser.nextText();  newsInfo.setComment(的Long.parseLong(评论));  }  打破;  case XmlPullParser.END_TAG:  if(“newsInfo”.equals(parser.getName())){  newsInfos.add(报纸资讯);  newsInfo = null;  }  打破;  }  类型= parser.next();  }  回报新闻  } catch(Exception e){  e.printStackTrace();  返回null;  }  }  }  

6、MyAdapter.java:

导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.View;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.TextView;
import com.loopj.android.image.SmartImageView;
import java.util.List;
进口cn.edu.bzu.news.R;
进口cn.edu.bzu.news.entity.NewsInfo;  public class MyAdapter extends ArrayAdapter <NewsInfo> {  private int resourceId;  public MyAdapter(Context context,int textViewResourceId,List <NewsInfo> object){  super(context,textViewResourceId,object);  resourceId = textViewResourceId;  }  public View getView(int position,View convertView,ViewGroup parent)  {  NewsInfo info = getItem(position);  layoutInflater inflater =(LayoutInflater)getContext()。getSystemService(Context.LAYOUT_INFLATER_SERVICE);  查看view = inflater.inflate(resourceId,null);  SmartImageView imageView =(SmartImageView)view.findViewById(R.id.item_image);  TextView tv1 =(TextView)view.findViewById(R.id.item_tv1);  TextView tv2 =(TextView)view.findViewById(R.id.item_tv2);  TextView tv3 =(TextView)view.findViewById(R.id.item_tv3);  imageView.setImageUrl(info.getPath());  tv1.setText(info.getTitle());  tv2.setText(info.getDes());  tv3.setText(将String.valueOf(info.getComment()));  返回视图;  }  }  

7、最后运行效果图:

Android 新闻客户端案例相关推荐

  1. Android新闻客户端实训-Day1类Day2接口基操

    结束了一些事情,本以为可以好好玩一段时间,结果紧接着又来了Android实训,因为这个实训已经开了一段时间了,我中途加入已经不赶趟了,但出于兴趣,准备今天开始跟着老师的笔记的源码从头开始自己摸索着学一 ...

  2. android新闻客户端报告,简易的Android新闻客户端

    学完Android基础之后不知道该怎么办?现在开始实战吧! 现在来看看一款简易的Android新闻客户端是怎么做的,当然,获取网络数据的这一部分我是使用别人做好的本地客户端,然后通过组建本地数据库来使 ...

  3. android 新闻频道,GitHub - xiyy/TopNews: 一款Android新闻客户端,并提供电视台直播功能...

    TopNews 一款Android新闻客户端,独立开发完成,主要功能包括: 1 新闻频道分类,头条.社会.国内.娱乐.体育.军事.科技.财经.时尚 使用ViewPager+FragmentPagerA ...

  4. android新闻客户端发展趋势,基于Android平台的新闻客户端设计与实现

    杨苏雯 摘 要 在Android开发平台上,并在JavaWeb开发的PC端新闻网站的基础上结合现在的需求开发了移动版的新闻客户端App,这个系统设计主要分为用户登录验证模块.新闻列表的显示功能模块以及 ...

  5. android新闻客户端实验报告,基于Android平台的新闻客户端设计与实现

    摘 要 在Android开发平台上,并在JavaWeb开发的PC端新闻网站的基础上结合现在的需求开发了移动版的新闻客户端App,这个系统设计主要分为用户登录验证模块.新闻列表的显示功能模块以及新闻内容 ...

  6. android新闻客户端实验报告,Android 新闻客户端学习笔记

    学习了新闻客户端开发后,有很多是通用的,就把客户端用到的一些做个笔记,已备以后使用,主要用到的知识点有: 1.  Android网络编程 2.  Android中BaseAdapter的使用 3.   ...

  7. android新闻客户端的实现

    制作一个基于聚合新闻数据简单的新闻APP 制作简易新闻App 导航篇 [1.使用Fragment+ViewPager +TabLayout自制简易新闻 app主要框架(一)](https://blog ...

  8. android新闻客户端(有源码)

    有些功能还没实现 源码今天起不再免费提供,评论区有联系方式 目录 一. 题目及要求 2 二. 功能设计 3 三. 详细设计 3 1. 启动页面 3 1)页面显示完跳转 3 2) 启动页面图片全屏化 3 ...

  9. Android新闻客户端(仿网易)--下

    一.摘要继上一篇博客<模仿网易新闻客户端(上)>之后,笔者继续开发我们自己的"网易新闻客户端",由于找不到现成的url新闻链接地址,所以这里就用RSS订阅所提供的url ...

最新文章

  1. BOM和DOM的区别
  2. linux装完windows时间长,重装Windows 10上的Linux子系统
  3. postgre管理员 无法访问表_postgresql – 授予用户对所有表的访问权限
  4. Tableau2019版本安装步骤
  5. mybatis sql标签_【1039期】Mybatis面试18问,你想知道的都在这里了!
  6. 警钟 | 还不会Spring Boot集成JWT,你可能错过了大厂的Office了
  7. vb.net 判断是否为ip 正则_什么是个人IP科学定位?标准答案来了|ip|直播|科学|ip魔方...
  8. Atom飞行手册翻译: 2.3 文本选择
  9. MongoDB安装问题
  10. artemis服务_artemis小结
  11. php dropdownlist,下拉列表多级联动dropDownList示例代码
  12. 全网首发:怎样制作CDKEY(6)-CDKEY破解
  13. python opencv 中文_OpenCV-Python在图片上输出中文
  14. # 将日期的符串(Sat Mar 21 08:00:00 CST 2020 )转换为指定字符串日期(yyyy-MM-dd HH:mm:ss)
  15. 修复计算机用户名密码,win7恢复出厂设置后用户名密码是多少
  16. 电脑里的文档不小心删除了恢复的方法
  17. LeetCode-70. 爬楼梯(java)
  18. git和远程仓库建立连接详细过程
  19. 全球与中国电解镍市场深度研究分析报告
  20. 【Java——计算圆面积】

热门文章

  1. Java 中finalize()方法起什么作用呢?
  2. Keil5安装和使用小记
  3. “mvn -version ‘mvn‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件“
  4. 4个单词,谷歌返回16个SQL注入漏洞
  5. DNS-域名解析协议
  6. vector 多维向量定义及其初始化
  7. java女程序员的出路,持续更新~
  8. centos7下升级GLIBC2.31
  9. QR分解、RQ分解与SVD
  10. devm_ioremap_resource devm_ioremap 区别