文章目录

    • 一、作业要求
    • 二、具体实现
      • 1.0布局文件(activity_main.xml)
      • 1.1布局文件(simpleitem.xml)
      • 2.程序代码(MainActivity.java)
  • 总结


一、作业要求

根据前面的学习内容,通过ListView实现简易新闻客户端,用户界面如图1所示。
由于当前学习进度还没有到网络通信,下载3到5条数据到本地(主要是图片),然后从本地加载即可。
要求如下:
(1)修改应用名称
将应用名称由“News”改为“XX新闻”;XX为同学自己的名字,例如,张三同学,应用名称可改为“三新闻”
(2)列表项的组成
列表项由四部分组成:图片、标题、简要说明、评论,各部分的大小、位置等要与图1相似。
(3)实现列表项的点击事件监听
当点击了某一列表项时,在弹出的Toast提示框中显示被点击列表项的标题。例如,界面如图1,点击第一项,提示框里应显示:科技温暖世界

二、具体实现

界面实现:

 

1.0布局文件(activity_main.xml)

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><TextViewandroid:layout_width="fill_parent"android:layout_height="70dp"android:background="#F6CED8"android:paddingLeft="15dp"android:paddingTop="12dp"android:text="乔新闻"android:textColor="@color/white"android:textSize="30sp" /><ListViewandroid:id="@+id/lv"android:layout_width="fill_parent"android:layout_height="wrap_content"android:divider="#E6E6E6"android:dividerHeight="1dp"android:background="#F2F2F2"/></LinearLayout>

1.1布局文件(simpleitem.xml)

simpleitem.xml是ListView 的内部布局

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><ImageViewandroid:id="@+id/imges"android:layout_width="160dp"android:layout_height="136dp"android:baselineAlignBottom="true"android:paddingLeft="8dp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="136dp"android:layout_gravity="center_vertical"android:orientation="vertical"><TextViewandroid:id="@+id/title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="8dp"android:textColor="@color/black"android:textSize="20sp" /><TextViewandroid:id="@+id/says"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="8dp"android:paddingTop="10dp"android:textColor="#BDBDBD"android:textSize="13sp" /><TextViewandroid:id="@+id/hot"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="150dp"android:paddingTop="5dp"android:textColor="#2E9AFE"android:paddingRight="8dp" /></LinearLayout>
</LinearLayout>

2.程序代码(MainActivity.java)

package com.example.homework_third;import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class MainActivity extends AppCompatActivity {private String[] title = {"风风雨雨,误了春光。","良辰美景奈何天","三分春色描来易","行路难,不在水","闲愁万种,无语怨东风。"};private String[] says = {"怕催花信紧,风风雨雨,误了春光。","良辰美景奈何天,赏心乐事谁家院。","三分春色描来易,一段伤心画出难。","行路难,不在水,不在山,只在人情反覆间!","花落水流红,闲愁万种,无语怨东风。"};private String[] hot={"孔尚任《桃花扇》","汤显祖《牡丹亭》","汤显祖《牡丹亭》","白居易《太行路》","王实甫《西厢记》"};private int[] imgIds = new int[]{R.drawable.img06, R.drawable.img07, R.drawable.img08,R.drawable.img09,R.drawable.img10};private ListView listview;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);List<Map<String, Object>> listitem = new ArrayList<Map<String, Object>>();for (int i = 0; i < title.length; i++) {Map<String, Object> showitem = new HashMap<String, Object>();showitem.put("photo", imgIds[i]);showitem.put("title", title[i]);showitem.put("says", says[i]);showitem.put("hot",hot[i]);listitem.add(showitem);}//创建一个simpleAdapterSimpleAdapter myAdapter = new SimpleAdapter(getApplicationContext(),listitem,R.layout.simpleitem,new String[]{"photo","title","says","hot"},new int[]{R.id.imges,R.id.title,R.id.says,R.id.hot});listview = (ListView) findViewById(R.id.lv);listview.setAdapter(myAdapter);listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {String text = (String) ((TextView)view.findViewById(R.id.title)).getText();Toast.makeText(MainActivity.this, text, Toast.LENGTH_LONG).show();}});}
}

总结

事实上 ListView 自己是有界面滚动功能的,如果页面太多非要添加上下左右滚动,也可以用ScrollView 嵌套在simpleitem.xml 中的最外层,但是 ScrollView 嵌套有缺陷,需要根据界面自己调整行高,同时ScrollView 由于是嵌套的父布局,对于子布局ListView 的onItemclick 会不响应。需要重写解决冲突。

ListView实现简易新闻客户端相关推荐

  1. android开发笔记之网络编程—简易新闻客户端

    今天我们来对前面讲过的知识综合运用一下,包括xml的PULL解析,listView的万能适配器等知识.... 那先来看一个组件-->智能图片加载器(smart-image-view),它可以很方 ...

  2. Android简易新闻客户端自动升级 简易新闻(二十)

    Android简易新闻客户端自动升级 简易新闻(二十) 关于 说明 第一步,添加引用 第二步,注册蒲公英账号 第三步,添加AndroidManifest.xml配置 初始化 最后一步 打包上传 关于 ...

  3. httpclient来实现android客户端编程,Android网络编程之简易新闻客户端

    一. 通过一个案例"新闻客户端"向大家演示AsyncHttpClient和SmartImageView的综合使用. 运行结果如下: 1.首先我们了解一下相关知识: SmartIma ...

  4. 简易新闻客户端android

    1.创建app\src\main\res\xml\network_security_config.xml 目的可以访问http请求 <?xml version="1.0" e ...

  5. 安卓开发之简易新闻客户端

    Entity包下创建实体类NewsInfo package cn.edu.bzu.myapplication.entity;/*** Created by Administrator on 2017/ ...

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

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

  7. android新闻客户端的实现

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

  8. Android SlidingMenu 仿网易新闻客户端布局

    前面两篇文章中的SlidingMenu都出现在左侧,今天来模仿一下网易新闻客户端左右两边都有SlidingMenu的效果,以下是网易新闻客户端效果: 不扯闲话了,直接进入正题吧 frame_conte ...

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

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

最新文章

  1. BootStrap在一行如何展示多行单据
  2. wallpaper怎么改后缀_腾讯微信视频号怎么引流?腾讯视频号引流有哪些方法?
  3. macOS下nginx配合obs做推流直播.md
  4. Springboot - -web应用开发-Servlets, Filters, listeners
  5. linux双系统重装win7系统下载,Windows与Ubuntu双系统重装WIN7后修复Grub2
  6. 为Java应用程序加上退出事件处理(ShutdownHook)
  7. 32个Python爬虫项目
  8. 离开小米后 周受资将加入字节跳动担任CFO
  9. mysql update语句卡死_oracle执行update语句时卡住问题分析及解决办法
  10. Python demjson 下载并安装
  11. springboot 使用mybatis-plus 配置乐观锁
  12. “数学不行,干啥也不行!”CTO:基础差的程序员,你不知道有多难!
  13. RocketMQ 实战-SpringBoot整合RocketMQ同步消息、异步消息、单向消息
  14. shell 学习之case语句
  15. iPad常用的目录路径
  16. SSM | Spring
  17. Mac无法识别硬盘解决办法
  18. 解读 2018:13 家开源框架谁能统一流计算?
  19. 5.6.3 分组总计查询
  20. SOEM主站simple_test之ec_send_processdata

热门文章

  1. LDF文件步骤及内容详解
  2. 【美图秀秀之大变外景照片为影楼写着】
  3. PCB设计Checklist
  4. 【杭电多校round3】G Interstellar Travel
  5. Aspose.Pdf使用教程:在PDF文件中添加水印
  6. firefox 导入导出书签
  7. Java实现平均分配算法(附代码)
  8. 大学计算机说课稿,【实用】信息技术说课稿三篇
  9. flash大厅_Flash必要的系统组件未能正常运行,请修复Adobe
  10. Codeforces Round #335 (Div. 2) D. Lazy Student 构造