必威体育Betway必威体育官网
当前位置:首页 > IT技术

Android图文列表实现(ListView)

时间:2019-11-01 17:15:42来源:IT技术作者:seo实验室小编阅读:69次「手机版」
 

android listview

【mie haha的博客转载请注明出处(万分感谢!):

https://blog.csdn.net/qq_40315080/article/details/96186623

Android中xml和java相结合。

xml用来进行不复杂的布局,java用来描述功能或进行稍复杂的布局(布局可替代xml,只是xml更方便)

举例listview实现简单图文列表-----------

效果(只看张明李明李明部分):

在这里插入图片描述

一个列表的一个单元中显示了1个图片,2段文字,这不能用ListView中的set方法直接设置,需要为它用一个xml文件专门设置一下每个单元都是什么形式。

xml代码

1.首先是主界面的xml布局代码,包含一个列表ListView:

<?xml version="1.0" encoding="utf-8"?>

<Linearlayout

    android:background="#ffffff"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include layout="@layout/middle"></include>

    <ListView
        android:id="@+id/listview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </ListView>

</LinearLayout>

2.接下来规定列表中单元的布局,在res/layout中再建一个xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:APP="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<ImageView
    android:id="@+id/image1"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:src="@mipmap/ic_launcher"
    android:layout_margin="5dp"></ImageView>

<LinearLayout
    android:id="@+id/linearlayout"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:layout_margin="5dp"
    android:layout_marginleft="10dp"
    android:orientation="vertical">

        <TextView
            android:id="@+id/text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:textSize="25sp"
            android:textcolor="@color/dark"
            />
        <TextView
            android:id="@+id/text2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:textSize="10sp"
            android:textColor="@color/dark"
            />

</LinearLayout>


</LinearLayout>

其中ImageView中的src是图片的位置,要用的图片都要拖入res/mipmap中,引用图片时src为@mipmap/picture’s name

颜色color是在values/colors.xml中设置的,初始时有默认设置的几个颜色,可以继续仿照给出的默认值增添需要的颜色,此处我增加了上面用到的dark。

我的colors.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#008577</color>
    <color name="colorPrimaryDark">#00574B</color>
    <color name="colorAccent">#D81B60</color>
   
    <color name="dark">#000000</color>
</resources>

接下来在Activity文件中进行设置,让列表ListView的单元格应用我们自己定义的form.xml文件,变成1个图片2段文字的形式:

public class MainActivity extends Activity {

    private List<Map<String, Object>> lists;
    private SimpleAdapter adapter;
    private ListView listView;

    private String[] theme = {"张明", "李明", "李明"};
    private String[] content = {"600 602 501", "666 620 502", "666 620 503"};
    private int imageViews = R.mipmap.ic_launcher;  //用到的图片是mipmap中的ic_launcher
    
    protected void onCreate(Bundle savedinstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

       //需要把图片和文字(一个单元中的东西)用Map对应起来,必须这样做,这是下面要用到的适配器的一个参数
        lists = new ArrayList<>();
        for (int i = 0; i < theme.length; i++) {
            Map<String, Object> map = new HashMap<>();
            map.put("image", imageViews);
            map.put("theme", theme[i]);
            map.put("content", content[i]);
            lists.add(map);
        }

       //适配器指定应用自己定义的xml格式
        adapter = new SimpleAdapter(MainActivity.this, lists, R.layout.form, new String[]{"image", "theme", "content"}, new int[]{R.id.image1, R.id.text1, R.id.text2});
        listView = (ListView) findViewById(R.id.listview);
        listView.setAdapter(adapter);

上面用到的简单适配器SimpleAdapter的参数依次是:应用到的上下文对象(一般为activity);含有Map的一个集合(数据源);

每一个item的布局文件(我们自己新增定义的xml文件);new String[]{}数组,数组的里面的每一项要与第二个参数中的存入map集合的的key值一样,一一对应;

简单图文列表完成。

仍在入门,若有错误,欢迎指出

文章最后发布于: 2019-07-16 21:43:29

相关阅读

MySql分页实现

分页sql格式是:select * from table limit (start-1)*limit,limit; 其中start是页码,limit是每页显示的条数。分页需求:客户端通过传

实现财富自由的第一步!人人贷、铜板街、银象网、你我贷

说起赚钱这个话题,相信大家都很感兴趣,但是要说起具体怎么赚钱,就没几个人敢发言了。因为大多数普通人都是上着普通的班,拿着一份普通

Bigpipe学习笔记和java版实现

写在开头 --这篇bigpipe的笔记早在一年前就想写了,但是一直被耽搁了。终于今天再翻看旧ppt时才想起要补上这篇博客。本文中关于big

Heap 的原理与实现

文章目录原理实现原理 堆是一种数状数据结构,若是满足以下特性,即可称为堆:“给定堆中任意节点 P 和 C,若 P 是 C 的母节点,那么 P

servlet以及spring mvc实现bigpipe技术分享

使用Servlet分段输出构建BigPipe服务端BigPipe是一个重新设计的基础动态网页服务体系。大体思路是,分解网页成叫做Pagelets的小块,

分享到:

栏目导航

推荐阅读

热门阅读