【Android笔记】如何创建列表视图

可以通过ListView和ArrayAdapter两个类协助来完成:

1.  新建一个工程,将Layout文件的根视图改成ListView,当然也可以将ListView插到根视图里,这里用的是改根视图的方式:
ExpandedBlockStart.gif 代码
     <? xml version="1.0" encoding="utf-8" ?>
    
< ListView  xmlns:android ="http://schemas.android.com/apk/res/android"
        android:layout_width
="fill_parent"  
        android:layout_height
="fill_parent"  
        android:id
="@+id/listview_main" >
    
</ ListView >

 


2.  在Activty里面写下面的代码:
ExpandedBlockStart.gif 代码
     package  colin.demo;

    
import  android.app.Activity;
    
import  android.os.Bundle;
    
import  android.view.View;
    
import  android.widget.AdapterView;
    
import  android.widget.ArrayAdapter;
    
import  android.widget.ListView;
    
import  android.widget.Toast;
    
import  android.widget.AdapterView.OnItemClickListener;

    
public   class  MainFrom  extends  Activity {
        
/**  Called when the activity is first created.  */
        @Override
        
public   void  onCreate(Bundle savedInstanceState) {
            
super .onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            
//  取得ListView
            mListView  =  (ListView)findViewById(R.id.listview_main);
            
//  创建一个ArrayAdapter
            ArrayAdapter < String >  uiDemoList  =   new  ArrayAdapter < String > ( this , R.layout.textview_item, mDemoList);
            mListView.setAdapter(uiDemoList);
            
//  使ListView支持过滤搜索
            mListView.setTextFilterEnabled( true );
            
//  设置事件
            mListView.setOnItemClickListener(mItemClickListenter);
        }
        
        
private   void  ShowMessage(CharSequence msg)
        {
            
if  (mToast  ==   null )
                mToast 
=  Toast.makeText( this , msg, Toast.LENGTH_LONG);
            mToast.setText(msg);
            mToast.show();
        }
        
        
private  OnItemClickListener mItemClickListenter  =   new  OnItemClickListener()
        {
            @Override
            
public   void  onItemClick(AdapterView <?>  parent, View view,  int  position,  long  id)
            {
                
//  弹个Tooltip出来
                ShowMessage(mDemoList[position]);
            }
        };    
        
        
private  Toast mToast;
        
private  ListView mListView;
        
private  String [] mDemoList  =  
        {
            
" DemoView1 " " DemoView2 " " DemoView3 " ,
        };
    }

 

    
这里最重要的是ArrayAdapter的创建,构造函数声明如下:
    public ArrayAdapter (Context context, int textViewResourceId, T[] objects)
    *.  textViewResourceId 这是一个Layout的资源ID,其根元素必须是一个TextView,显然ArrayAdpater要用这个TextView作为模板设置给ListView,让它作为ListView的一项显示。
    *.  Objects 是代表数据列表,ArrayAdapter会调用T的toString(),将它显示到TextView上。我们这里将T设为String类型,但其实它可以不是String的。

3.  上面看到ArrayAdapter需要一个Layout的ID,我们现在要创建这个Layout
    *.  在Package Explorer的Res处右键菜单,点击New/Others...

    *.  在弹出来的对话框处,选择Adroid/Android XML File

    *.  在弹出来的对话框处,输入下面消息:

        在File处输入textview_item.xml
        在What type of resource would you like to create处选择Layout
        在Select the root element for the XML file处选择TextView
    *.  点击确定,就在res/layout目录下创建了一个textview_item.xml的布局文件。
    你可以设置TextView的属性,这些设置都会反映到列表框中。
ExpandedBlockStart.gif 代码
     <? xml version="1.0" encoding="utf-8" ?>
    
< TextView
      
xmlns:android ="http://schemas.android.com/apk/res/android"
      android:layout_width
="fill_parent"
      android:layout_height
="fill_parent"  android:text ="text"  android:textSize ="12pt"  android:typeface ="sans" >
    
</ TextView > 

4.  最后运行程序,可以看到下面的程序:
     
    上面的例子反映了视图与Adapter的关系,使用它们可以创建出很多样的界面,这是以后的主题了。
    我们这里用的数据项是String,但事实上可以用其他的类,你可以自定义一个类,包含一些数据,然后覆盖toString()方法,返回字符串给ListView显示。

转载于:https://www.cnblogs.com/lingo/archive/2010/04/04/1704009.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值