• 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接口。



  • 相关阅读:
    HDU2027 统计元音 一点点哈希思想
    湖南工业大学第一届ACM竞赛 数字游戏 字符串处理
    湖南工业大学第一届ACM竞赛 我素故我在 DFS
    HDU3293sort
    HDU2082 找单词 母函数
    HDU1018 Big Number 斯特林公式
    湖南工业大学第一届ACM竞赛 分糖果 位操作
    UVA 357 Let Me Count The Ways
    UVA 147 Dollars
    UVA 348 Optimal Array Multiplication Sequence
  • 原文地址:https://www.cnblogs.com/eaglegeek/p/4557955.html
Copyright © 2020-2023  润新知