Android-ListView

ListView是一个经常用到的控件,ListView里面的每个子项Item可以使一个字符串,也可以是一个组合控件。先说说ListView的实现:

1.准备ListView要显示的数据 ;

2.使用 一维或多维 动态数组 保存数据;

2.构建适配器 , 简单地来说, 适配器就是 Item数组 , 动态数组 有多少元素就生成多少个Item;

3.把 适配器 添加到ListView,并显示出来。

接下来,就开始UI的XML代码:

main.xml代码如下,很简单,也不需要多做解释了:

<RelativeLayout
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:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="com.example.listviewdemo.MainActivity"
>

<ListView

android:id="@+id/list_id"

android:layout_width="wrap_content"

android:layout_height="wrap_content"
>

</ListView>

</RelativeLayout>

my_listitem.xml的代码如下,my_listitem.xml用于设计ListView的Item:

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

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/mylistitem_id"

android:layout_width="fill_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:paddingBottom="3dip"

android:paddingLeft="10dip"
>

<TextView

android:id="@+id/item_tv_id"

android:layout_width="wrap_content"

android:layout_height="fill_parent"

android:textSize="30dip"
/>

<TextView

android:id="@+id/item_tv2_id"

android:layout_width="fill_parent"

android:layout_height="wrap_content"
/>

</LinearLayout>

解释一下,里面用到的一些属性:

1.paddingBottom="3dip",Layout往底部留出3个像素的空白区域

2.paddingLeft="10dip",Layout往左边留出10个像素的空白区域

3.textSize="30dip",TextView的字体为30个像素那么大。

最后就是JAVA的源代码:

public class MainActivity
extends Activity {

ListView listView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findView();

//生成动态数组

ArrayList<HashMap<String,String>> myList =
new ArrayList<HashMap<String,String>>();

for (int i = 0; i < 30; i++) {

HashMap<String, String>map =
new HashMap<String, String>();

map.put("ItemTitle",
"this is" + i);

map.put("ItemText",
"This is text......");

myList.add(map);

}

//生成适配器

SimpleAdapter mSchedule = new SimpleAdapter(this,

myList, //数据来源

R.layout.my_listitem,//ListItem的xml实现,进行连接

new String[] {"ItemTitle","ItemText"},//动态数组与ListItem对应的子项

new
int[] {R.id.item_tv_id,R.id.item_tv2_id});//ListItem的XML文件里面的两个TextView ID

listView.setAdapter(mSchedule);
//添加并且显示

}

public void findView() {

listView = (ListView)findViewById(R.id.list_id);

}

时间: 2024-11-10 12:51:13

Android-ListView的相关文章

Android——ListView布局+适配器(三)

Android--ListView布局+适配器(三) package com.example.administrator.newstop; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import andro

Android——ListView多布局+适配器(二)

Android--ListView多布局+适配器(二) <span style="font-size:18px;">package com.example.administrator.newstop.entity; /** * Created by Administrator on 2016/8/4. */ public class News { private String title; private String pubDate; private int img; p

Android ListView复杂列表优化实践

原文:Android ListView复杂列表优化实践 很多社交App都不免会涉及到复杂的列表元素实现,一个列表上面可能大量的图片,不定长的评论列表,给手机端的程序员带来了不少的挑战.本文就是在实现复杂的列表滑动的情况下,利用已知的优化方法指导下的一次优化实践,旨在提升ListView的滑动流畅度,为用户带来良好的体验. 1:设计稿: 这是列表中可能出现的ItemView,有两种,但是又有许多相同的地方,比如一样有点赞的图片,评论等...其中,评论和点赞的数量是可变的. 2:使用一般布局带来的问

[转]Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件

Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件. 1.为了防止拖动ListView时,在列表末尾重复数据显示.需要加入 HashMap<Integer,View> lmap = new HashMap<Integer,View>();其中Integer为列表位置,View为子项视图,加入数据前首先if (lmap.get(position)==null) ,满足条件时,加入lmap.put(position, convertView

android listview级联三菜单选择地区,本地数据库sqlite级联地区,item选中不变色

前言:因为找了N多网上的资源都没有好的解决方案,别人都是只给思路没给具体源码,真TMD纠结,干嘛求别人,自己动手才是真,最痛恨那些所谓大牛的作风,给了点点代码就让别人去想,你让我们这种小白情何于堪!!!!!!此例是基于listview来实现本地sqlite实现的! 二话不说,程序猿求的是有图有真相有源码!大家下载后有什么问题可以找到本人:QQ508181017 核心代码如下 1.数据库操作类 package com.icq.demo.db; import java.util.ArrayList;

关于android:listview getChildAt 为空的解释

今天遇到了一个很奇怪的问题,我所设定的一个listview 有10个item,当我的 list.getCount 的数量对其进行for 循环的时候,当到第6个item的时候,得到的view对象却是null,这让我很费解,经过一番查询,明白了这个问题是怎么回事,与大家分享下: 如图片红框部分的listview部分.这其实涉及到android的listview控件的内存处理问题:当我们加载listview时,如果这个listview的数据量比较多,它是显示不完全的,但这时是否是所有的数据都已经加载?

android Listview分批加载+自动加载(附源码下载)

直接上代码,代码有注释: public class TestForListviewActivity extends Activity implements OnScrollListener { private ListView mListview = null; private View mFooterView; private PaginationAdapter mAdapter; private Handler handler=new Handler(); private boolean i

Android ListView常见属性问题

Question 1: listview在拖动的时候背景图片消失变成黑色背景.等到拖动完毕我们自己的背景图片才显示出来. 解决办法: xml中: android:scrollingCache="false"  或者 android:cacheColorHint="#00000000" 代码中: setScrollingCacheEnabled(false)  或者 setCacheColorHint(0)  或者setCacheColorHint(Color.TRA

Android——ListView与适配器

Android--ListView与适配器 1.抽屉布局  Drawer <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.

Android ListView 中的onItemClick方法中Intent 无法跳转的解决方案

I found this somewhere after googling There will be case that your custom list item doesn’t respond when you click…so what’s the reason and what’s the solution? Here several problems and solutions: 1. Scenario: list item layout contains CheckBox Prob