zoukankan      html  css  js  c++  java
  • AdapterView及其子类之三:基于ListView及ArrayAdapter实现列表

    见归档项目ListViewDemo.zip.

    基本步骤如下:

    1、创建主布局文件,里面包含一个ListView元素。

    <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=".MainActivity" >
    
       
        <ListView 
            android:id="@+id/listview"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:divider="#00ff00"
            android:dividerHeight="2dp"
            android:headerDividersEnabled="false"
             />
    
    </RelativeLayout>
    

    2、创建一个TextView,用于指定每一个选项的格式

    <?xml version="1.0" encoding="utf-8"?>
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="20dp" 
        android:background="#0000ff">
    
    </TextView>
    
    3、创建主类:

    package com.ljh.listviewdemo;
    
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.Toast;
    import android.app.Activity;
    
    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    
    		// (1)创建要显示的文本内容
    		String[] arr = { "java", "c/c++", "python", "ruby" };
    		//(2)与使用ListActivity的最大区别:使用findViewById得到一个ListView
    		ListView lv = (ListView) findViewById(R.id.listview);
    		
    		// (3)创建ArrayAdapter,其中第二个参数resource:The resource ID for a layout file
    		// containing a TextView to use when instantiating views.是要以一个layout作为
    		// 参数,且此layout需要包含textview。		
    		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
    				R.layout.list, arr);
    		// (4)为ListActivity设置adapter.
    		lv.setAdapter(adapter);
    		
    		lv.setOnItemClickListener(new OnItemClickListener(){
    
    			//定义当某个选项被点击时的操作。
    			@Override
    			public void onItemClick(AdapterView<?> parent, View view,
    					int position, long id) {
    				Toast.makeText(MainActivity.this, position+" item is clicked.", Toast.LENGTH_LONG).show();
    				
    			}
    			
    		});
    		
    	}
    	
    }
    


    使用ListActivity或ListView创建列表的区别:

    1、用途区别:二者都只能支持TextView类型,更强大的支持能力请见SimpleAdapter。

    ListActivity只能支持创建单个列表,而ListView可在同一页面创建多个列表,只要在布局文件中定义多个ListView元素即可。

    2、创建时的区别:

    ListActivity方法是继承了ListActivity,从而可以直接调用setListAdapter()及onListItemClick().

    ListView方法必须通过findViewById()得到一个ListView,然后再通过其调用setListAdapter(),以及设置OfnListItemClick接口。



  • 相关阅读:
    城市生态规划关键技术方法之三:城市生态系统服务功能理论与方法
    AE中用矢量数据剪裁栅格
    城市生态规划的基本原理与程序
    城市生态规划关键技术方法之一:生态系统健康理论与方法
    城市生态规划的基本概念、内容与方法
    终于找到使用Sql Server Management Studio导致蓝屏的罪魁祸首了
    保证相同类型的MDI子窗体只会被打开一次的方法
    甩掉数据字典,让Sql Server数据库也来一个自描述
    新鲜试用IE8 beta2
    让我目瞪口呆的program.exe
  • 原文地址:https://www.cnblogs.com/jediael/p/4304165.html
Copyright © 2011-2022 走看看