listview在java中的使用_ListView的使用

ListView 是列表组件,是Android中很常用的组件,列表显示信息由以下3个部分组成:

1、ListView组件

2、适配器,用来将数据映射到ListView组件中。

3、列表中要显示的数据

以下是几种适配器:

(1) ---ArrayAdapter---只显示一行文字

(2)---SimpleAdapter---自定义每行的数据显示形式

(3) ---SimpleCoursorAdapter---把数据库中的内容以列表的方式显示出来

一、ArrayAdapter

MainActivity.java代码如下:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 packagecom.example.lenovo.a1107;2

3 importandroid.support.v7.app.AppCompatActivity;4 importandroid.os.Bundle;5 importandroid.view.Menu;6 importandroid.view.MenuItem;7 importandroid.widget.ArrayAdapter;8 importandroid.widget.LinearLayout;9 importandroid.widget.ListView;10

11 importjava.util.ArrayList;12 importjava.util.List;13

14 public class MainActivity extendsAppCompatActivity {15

16 privateLinearLayout myLayout;17 privateListView myListView;18 @Override19 protected voidonCreate(Bundle savedInstanceState) {20 super.onCreate(savedInstanceState);21 setContentView(R.layout.activity_main);22 myLayout=(LinearLayout)findViewById(R.id.myLayout);23

24 myListView=new ListView(this);25

26 //创建ArrayAdapter适配器。构造函数中的第一个参数:Context,第二个:每一行的布局资源文件27 //第三个:数据源,一个List集合

28 ArrayAdapter adpater=new ArrayAdapter(this,29 android.R.layout.simple_expandable_list_item_1,getMyData());30

31 myListView.setAdapter(adpater);32 myLayout.addView(myListView);33

34 }35

36 public ListgetMyData(){37 List myList=new ArrayList();//创建List对象,并向其中添加数据

38 myList.add("数据项1");39 myList.add("数据项2");40 myList.add("数据项3");41 myList.add("数据项4");42 returnmyList;43

44 }45

46 }

View Code

.xml代码如下:

1

3 android:id="@+id/myLayout"

4 android:layout_width="fill_parent"

5 android:layout_height="fill_parent"

6 android:orientation="vertical"

7 >

8

9

2、SimpleAdapter

创建SimpleAdapter对象时,有5个参数,

第一个:上下文。

第二个:一个list类的集合,该集合是Map类型

第三个:每一行的布局资源文件(listviewrow)(可自定义)。

第四个:HashMap中的key值。

第五个:下面是listviewroe.xml里的组件id。

lisviewExample.java代码如下:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 packagecom.example.lenovo.a1107;2

3 importandroid.app.Activity;4 importandroid.graphics.Color;5 importandroid.os.Bundle;6 importandroid.view.View;7 importandroid.widget.AdapterView;8 importandroid.widget.LinearLayout;9 importandroid.widget.ListView;10 importandroid.widget.SimpleAdapter;11 importandroid.widget.Toast;12

13 importjava.util.ArrayList;14 importjava.util.HashMap;15 importjava.util.List;16 importjava.util.Map;17

18 /**

19 * Created by Lenovo on 2015/11/7.20 */

21 public class ListViewExample extendsActivity {22 privateLinearLayout myLayout;23 privateListView myListView;24

25 List>list=new ArrayList>();26 //创建List对象,用来存放列表每一行的Map信息

27

28 @Override29 protected voidonCreate(Bundle savedInstanceState) {30 super.onCreate(savedInstanceState);31 setContentView(R.layout.activity_main);32 myLayout=(LinearLayout)findViewById(R.id.myLayout);33 //获取LinearLayout对象

34 myListView=new ListView(this);35

36 //创建布局参数

37 LinearLayout.LayoutParams tripListViewParam=newLinearLayout.38 LayoutParams(39 LinearLayout.LayoutParams.FILL_PARENT,40 LinearLayout.LayoutParams.FILL_PARENT);41

42 myListView.setCacheColorHint(Color.GRAY);//当拖拽列表时,显示的颜色

43 myLayout.addView(myListView, tripListViewParam);//将列表tripListView添加到布局myListView中

44

45 SimpleAdapter adapter=new SimpleAdapter(this,getTripListData(),R.layout.listviewrow,46 new String[]{"img","name","money","zhe"},new int[]{R.id.tripImg,47 R.id.phoneName, R.id.phoneMoney,R.id.phoneDiscount});48 //构建SimpleAdapter对象,5个参数

49

50 myListView.setAdapter(adapter);//为列表添加适配器

51

52 myListView.setOnItemClickListener(newAdapterView.OnItemClickListener() {53 @Override54 public void onItemClick(AdapterView> parent, View view, int position, longid) {55 Toast.makeText(ListViewExample.this,"您选择的是"+list.get(position).get("name").56 toString(), Toast.LENGTH_SHORT).show();57 }58 }); //列表的单击事件

59

60 }61 public List>getTripListData(){62 Map map=new HashMap();63 map.put("img",R.drawable.pic1);64 map.put("name","iphone6s 16G");65 map.put("money","4600元");66 map.put("zhe","8.8折");67 list.add(map);68 map.put("img",R.drawable.pic2);69 map.put("name","iphone6 plus 16G");70 map.put("money","5600元");71 map.put("zhe", "9.0折");72 list.add(map);73 map=new HashMap();74 map.put("img",R.drawable.pic3);75 map.put("name","SAMSUNG 16G");76 map.put("money","3600元");77 map.put("zhe", "8.5折");78 list.add(map);79 returnlist;80 }81 }

View Code

layout/main.xml文件

1

3 android:id="@+id/myLayout"

4 android:layout_width="fill_parent"

5 android:layout_height="fill_parent"

6 android:orientation="vertical"

7 >

8

9

layout/listViewrow.xml代码:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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

2

4 android:orientation="horizontal"

5 android:layout_width="fill_parent"

6 android:layout_height="match_parent">

7

8

10 android:layout_width="110dp"

11 android:layout_height="120dp"

12 android:layout_margin="10dp"

13 />

14

16 android:layout_width="wrap_content"

17 android:layout_height="wrap_content"

18 android:layout_marginTop="10dp"

19 >

20

22 android:layout_width="wrap_content"

23 android:layout_height="wrap_content"

24 android:textColor="#ff0000"

25 />

26

28 android:layout_width="wrap_content"

29 android:layout_height="wrap_content"

30 android:textColor="#ff000000"

31 android:layout_marginTop="5dp"

32 android:layout_marginRight="25dp"

33 />

34

36 android:layout_width="wrap_content"

37 android:layout_height="wrap_content"

38 android:textColor="#ff1010"

39 android:layout_marginTop="5dp"

40 android:layout_marginRight="25dp"

41 />

42

43

44

View Code

3、SimpleCursorAdapter

它允许绑定一个游标的列到ListView上,并可以使用自定义的layout显示每个项目

SimpleCursorAdapterExample.java代码如下:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 packagecom.example.lenovo.a1107;2

3

4 importandroid.app.Activity;5 importandroid.database.Cursor;6 importandroid.os.Bundle;7 importandroid.provider.Contacts;8 importandroid.widget.LinearLayout;9 importandroid.widget.ListAdapter;10 importandroid.widget.ListView;11 importandroid.widget.SimpleCursorAdapter;12

13 public class SimpleCursorAdapterExample extendsActivity {14 privateListView myListView;15 privateLinearLayout myLayout;16

17 @Override18 protected voidonCreate(Bundle savedInstanceState) {19 super.onCreate(savedInstanceState);20 setContentView(R.layout.activity_main);21 myLayout =(LinearLayout) findViewById(R.id.myLayout);22

23 myListView = new ListView(this);24

25 Cursor cursor = getContentResolver().query(Contacts.People.CONTENT_URI,null,26 null,null,null);27 startManagingCursor(cursor);28 ListAdapter listAdapter = new SimpleCursorAdapter(this,29 android.R.layout.simple_expandable_list_item_1,cursor,30 new String[]{Contacts.People.NAME}, new int[]{android.R.id.text1});31

32 myListView.setAdapter(listAdapter);33 myLayout.addView(myListView);34 }35 }

View Code

main.xml布局文件与上一个一样~~

别忘记在注册访问手机联系人的权限。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值