zoukankan      html  css  js  c++  java
  • Android——列表视图(ListView)

    列表视图是android中最常用的一种视图组件,它以垂直列表的形式列出需要显示的列表项。在android中有两种方法向屏幕中添加列表视图:一种是直接使用ListView组件创建;另外一种是让Activity继承ListActivity实现。下面分别介绍这两种方法:

    一、直接使用ListView组件创建

    在布局文件中首先添加ListView

    代码如下:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity" >
    
        <ListView
            android:id="@+id/listView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:entries="@array/cytpe" >
    
        </ListView>
    
    </LinearLayout>

    这里使用了名称为ctype的数组资源,因此我们要在res/values目录中创建一个定义的数组资源的xml文件arrays.xml代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
        <resources>
            <string-array name="cytpe">
            <item>情景模式</item>
            <item>主题模式</item>
            <item>手机</item>
            <item>程序管理</item>
            <item>通话设置</item>
            <item>连接功能</item>
            </string-array>
     
        </resources>
    

    直接运行就可以看到如下所示的列表视图:

    下面通过适配器来指定列表项来创建ListView

    布局代码:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity" >
    
        <ListView
            android:id="@+id/listView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:divider="@drawable/ic_launcher"
            android:dividerHeight="3px"
            android:footerDividersEnabled="false"
            android:headerDividersEnabled="false"
            >
    
        </ListView>
    
    </LinearLayout>
    

    Java代码:

    package com.basillee.blogdemo;
    
    import java.lang.annotation.Retention;
    import java.util.List;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.LinearLayout;
    import android.widget.ListView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		ListView listView=(ListView)findViewById(R.id.listView1);
    		ArrayAdapter<CharSequence>adapter=ArrayAdapter.createFromResource(this,R.array.cytpe,android.R.layout.simple_list_item_single_choice);
    		listView.setAdapter(adapter);
    		listView.setOnItemClickListener(new OnItemClickListener() {
    
    			@Override
    			public void onItemClick(AdapterView<?> parent, View arg1, int pos,
    					long id) {
    				String result=parent.getItemAtPosition(pos).toString();
    				Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();
    			}
    		});
    	}
    
    
    }
    

    二、让Activity继承ListActivity实现:

    如果程序的窗口仅仅需要显示一个列表,则可以直接让Activity继承ListActivity来实现。继承ListActivity的类中无需调用setContentView方法来显示页面,而是可以直接为其设置适配器,从而显示一个列表。

    废话少说直接看看代码大家就都懂了:

    package com.basillee.blogdemo;
    
    import java.lang.annotation.Retention;
    import java.util.List;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.app.ListActivity;
    import android.view.Menu;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.LinearLayout;
    import android.widget.ListView;
    import android.widget.Toast;
    
    public class MainActivity  extends ListActivity{
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		String []cytpeStrings=new String[]{"情景模式","主题模式","手机","程序管理"};
    		ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice,cytpeStrings);
    		setListAdapter(adapter);
    	}
    
    	@Override
    	protected void onListItemClick(ListView l, View v, int position, long id) {
    		// TODO Auto-generated method stub
    		super.onListItemClick(l, v, position, id);
    		String resultString=l.getItemAtPosition(position).toString();
    		Toast.makeText(getApplicationContext(), resultString, Toast.LENGTH_LONG).show();
    	}
    		
    
    }
    

      

  • 相关阅读:
    Minimum Path Sum,最短路径问题,动态规划
    UniquePaths,UniquePaths2,路径问题。动态规划。
    LengthOfLastWord,字符串最后一个子串的长度
    间隔问题,合并间隔(merge interval),插入间隔(insert interval)
    矩阵螺旋遍历Spiral Matrix,Spiral Matrix2
    Centos 5.2 下配置 php 的 json 扩展
    一个睡五分钟等于六个钟头的方法
    js div 排除内部的点击事件 就是 冒泡的处理
    做微信开发 “人脉圈的” 总结
    YII 学习笔记
  • 原文地址:https://www.cnblogs.com/BasilLee/p/4115093.html
Copyright © 2011-2022 走看看