android listview
https://blog.csdn.net/qq_40315080/article/details/96186623
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
相关阅读
分页sql格式是:select * from table limit (start-1)*limit,limit; 其中start是页码,limit是每页显示的条数。分页需求:客户端通过传
说起赚钱这个话题,相信大家都很感兴趣,但是要说起具体怎么赚钱,就没几个人敢发言了。因为大多数普通人都是上着普通的班,拿着一份普通
写在开头 --这篇bigpipe的笔记早在一年前就想写了,但是一直被耽搁了。终于今天再翻看旧ppt时才想起要补上这篇博客。本文中关于big
文章目录原理实现原理 堆是一种数状数据结构,若是满足以下特性,即可称为堆:“给定堆中任意节点 P 和 C,若 P 是 C 的母节点,那么 P
servlet以及spring mvc实现bigpipe技术分享
使用Servlet分段输出构建BigPipe服务端BigPipe是一个重新设计的基础动态网页服务体系。大体思路是,分解网页成叫做Pagelets的小块,