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);

}



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。