android中怎么把数组的内容在ListView中显示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中怎么把数组的内容在ListView中显示相关的知识,希望对你有一定的参考价值。
数组的内容显示在list上需要三大步:1.ListVeiw 用来展示列表的View。
2.适配器Adapter 用来把数据映射到ListView上。
3.数据 具体的将被映射的字符串,图片,或者基本组件。
根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter
如果仅仅将数组的内容显示到ListView 上ArrayAdapter就够了
public classTest extends ListActivity
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
String[] sw = new String[10];
for (int i = 0; i < 10; i++)
sw[i] = "List_" + i;
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,sw);//使用系统已经实现好的xml文件simple_list_item_1
setListAdapter(adapter);
//这样就容易的用系统已经实现的layout很快速的实现了listview加载数组sw,这样实现只能简单的将数组中的数据列在每一行上,同一行上不能添加其他东西,比如:图片/按键等
如果在同一行上进行不同的操作,可以用SimpleAdapter
如果在同一行上添加对象之类的,比如新浪微薄上每一条微薄、人人上每一条分享之类的,就要自己写类继承与BaseAdapter重写其中的getView方法
祝你好运~~ 参考技术A 用ArrayAdapter适配器 参考技术B 看用什么适配器了追问
刚接触android,你能不能详细介绍下呢,多谢
追答下面说的还算详细,并且举了一个不需要xml的例子,楼主可以运行感觉一下
ListView总结
ListView类作为在Android开发中经常会使用到的组件,作为新手,还是感到这一块变化形式还是很多的,需要慢慢学习。现在这里大概总结一下。
基于数组的ListView:使用android:entries属性可以指定列表项数组,这种方式最简洁方便,但内容只能是文本,可定制的内容少之又少。
使用ArrayAdapter创建ListView:也仅限于将数组或集合里的元素包装成列表项,比直接使用数组好在,可以指定列表项的列表项组件。例如:使用TextView作为列表项组件,不过也只能使用TextView。
例子:
1.列表项布局文件arraylist_item.xml:是的,没错,布局文件只包含一个TextView,这也是行的。
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/text1"/>
2.主界面布局文件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:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.zjlyyq.test.MainActivity"> <ListView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/listView" /> </LinearLayout>
3.MainActivity:
package com.example.zjlyyq.test; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends AppCompatActivity { ListView listView; String[] names = new String[]{"晃过天空","芝加哥公牛队","但使东山谢安石","颠三倒四","临时监护人"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView)findViewById(R.id.listView); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.arraylist_item,names); listView.setAdapter(adapter); } }
使用SimpleAdapter创建ListView:SimpleAdapter可以满足更强的定制,每个列表项对应一个布局文件,将一个Map里的元素对应在布局文件里的各组件,例如:
1.列表项布局文件simpleadapter_item.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_weight="0.15" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/header"/> <LinearLayout android:layout_weight="0.85" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/username"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/talk"/> </LinearLayout> </LinearLayout>
2.MainActivity:
package com.example.zjlyyq.test; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.SimpleAdapter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MainActivity extends AppCompatActivity { ListView listView; String[] names = new String[]{"晃过天空","芝加哥公牛队","但使东山谢安石","颠三倒四","临时监护人"}; int[] headers = new int[]{R.drawable.plane,R.drawable.plane,R.drawable.plane,R.drawable.plane,R.drawable.plane}; String[] talks = new String[]{"晚上吃了吗?","吃了","你呢?","还没?","哦哦"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView)findViewById(R.id.listView); List<Map<String,Object>> itemslist = new ArrayList<Map<String,Object>>(); for(int i = 0;i < 5;i ++){ Map<String,Object> evetyItem = new HashMap<String,Object>(); evetyItem.put("header",headers[i]); evetyItem.put("name",names[i]); evetyItem.put("talk",talks[i]); itemslist.add(evetyItem); } //创建一个SimpleAdapter SimpleAdapter simpleAdapter = new SimpleAdapter(this,itemslist,R.layout.simpleadapter_item, new String[]{"header","name","talk"}, new int[]{R.id.header,R.id.username,R.id.talk}); listView.setAdapter(simpleAdapter); } }
以上是关于android中怎么把数组的内容在ListView中显示的主要内容,如果未能解决你的问题,请参考以下文章
android 怎么把存入数据库的信息显示在ListView中
android listview里面能嵌套gridview吗