IT资讯

IT资讯
您当前所在位置:主页 > IT资讯 >

AndroidUI系统之 ListView篇

发布日期:2019年01月31 编辑:

AndroidUI系统之 ListView篇

1.创建一个项目:ListViewLearn

2.修改MainActivity,继承于ListActivity

3.创建一个String数组,用来保存ListView中的现实内容

  1. package com.learn.listviewlearn.utility; 
  2.  
  3. public class Util { 
  4.     public static final String[] COUNTRYS = { "中国", "美国", "俄罗斯", "英国", "法国" }; 

4.修改onCreate方法,设置一个Adapter,数组中的内容在ListView中现实出来

  1. @Override 
  2.   protected void onCreate(Bundle savedInstanceState) { 
  3.       super.onCreate(savedInstanceState); 
  4.       // setContentView(R.layout.activity_main); 
  5.       this.setListAdapter(new ArrayAdapter<String>(this, 
  6.               百家乐技术实现android.R.layout.simple_dropdown_item_1line, Util.COUNTRYS)); 
  7.   }

二、使用XML布局文件来定义ListView的样式

1.修改activity_main.xml文件,添加一个ListView,id必须为android:id="@android:id/list"

  1. LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  2.     android:layout_width="fill_parent" 
  3.     android:layout_height="fill_parent" 
  4.     android:orientation="vertical" > 
  5.  
  6.     <ListView 
  7.         android:id="@android:id/list" 
  8.         android:layout_width="fill_parent" 
  9.         android:layout_height="fill_parent" 
  10.         android:background="#FFFFFF00" > 
  11.     </ListView> 
  12.  
  13. </LinearLayout> 

2.修改OnCreate方法

  1. @Override 
  2.   protected void onCreate(Bundle savedInstanceState) { 
  3.       super.onCreate(savedInstanceState); 
  4.       setContentView(R.layout.activity_main); 
  5.       this.setListAdapter(new ArrayAdapter<String>(this, 
  6.               android.R.layout.simple_dropdown_item_1line, Util.COUNTRYS)); 
  7.   }

三、使用XML布局文件来定义ListViewItem的样式

1.首先创建一个list_view.xml的布局文件

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:layout_width="match_parent" 
  4.     android:layout_height="match_parent" 
  5.     android:orientation="horizontal" > 
  6.  
  7.     <ImageView 
  8.         android:id="@+id/imageViewIcon" 
  9.         android:layout_width="wrap_content" 
  10.         android:layout_height="wrap_content" 
  11.         android:contentDescription="@string/icon" > 
  12.     </ImageView> 
  13.  
  14.     <TextView 
  15.         android:id="@+id/textViewContent" 
  16.         android:layout_width="wrap_content" 
  17.         android:layout_height="wrap_content" > 
  18.     </TextView> 
  19.  
  20. </LinearLayout> 

2.然后创建一个Adapter继承于BaseAdapter,主要修改getCount()和getView()方法

  1. package com.learn.listviewlearn.adapter; 
  2.  
  3. import com.learn.listviewlearn.R; 
  4. import com.learn.listviewlearn.utility.Util; 
  5.  
  6. import android.content.Context; 
  7. import android.view.LayoutInflater; 
  8. import android.view.View; 
  9. import android.view.ViewGroup; 
  10. import android.widget.BaseAdapter; 
  11. import android.widget.ImageView; 
  12. import android.widget.TextView; 
  13.  
  14. public class ListViewAdapter extends BaseAdapter { 
  15.     private Context context; 
  16.  
  17.     public ListViewAdapter() { 
  18.         // TODO Auto-generated constructor stub 
  19.     } 
  20.  
  21.     @Override 
  22.     public int getCount() { 
  23.         return Util.COUNTRYS.length; 
  24.     } 
  25.  
  26.     @Override 
  27.     public Object getItem(int position) { 
  28.         // TODO Auto-generated method stub 
  29.         return null; 
  30.     } 
  31.  
  32.     @Override 
  33.     public long getItemId(int position) { 
  34.         // TODO Auto-generated method stub 
  35.         return 0; 
  36.     } 
  37.  
  38.     @Override 
  39.     public View getView(int position, View convertView, ViewGroup parent) { 
  40.         if (convertView == null) { 
  41.             convertView = LayoutInflater.from(context).inflate(R.layout.list_item, null); 
  42.             ItemViewCache itemViewCache = new ItemViewCache(); 
  43.             itemViewCache.imageView = (ImageView)convertView.findViewById(R.id.imageViewIcon); 
  44.             itemViewCache.textView = (TextView)convertView.findViewById(R.id.textViewContent); 
  45.             convertView.setTag(itemViewCache); 
  46.         } 
  47.          
  48.         ItemViewCache cache = (ItemViewCache) convertView.getTag(); 
  49.  
  50.         cache.imageView.setImageResource(Util.images[position]); 
  51.         cache.textView.setText(Util.COUNTRYS[position]); 
  52.         return convertView; 
  53.     } 
  54.      
  55.     private static class ItemViewCache{ 
  56.         public TextView textView; 
  57.         public ImageView imageView; 
  58.     } 
  59.  

Util.java

  1. package com.learn.listviewlearn.utility; 
  2.  
  3. import com.learn.listviewlearn.R; 
  4.  
  5. public class Util { 
  6.     public static final String[] COUNTRYS = { "中国", "美国", "俄罗斯", "英国", "法国" }; 
  7.     public static final int[] images = { R.drawable.ic_launcher, 
  8.             R.drawable.ic_launcher, R.drawable.ic_launcher, 
  9.             R.drawable.ic_launcher, R.drawable.ic_launcher }; 
  10. }

四、为ListView添加Click事件。只需要在MainActivity中实现onListItemClick()方法

  1. @Override 
  2.     protected void onListItemClick(ListView l, View v, int position, long id) { 
  3.         Toast.makeText(this, "你选择了" + Util.COUNTRYS[position], Toast.LENGTH_SHORT) 
  4.                 .show(); 
  5.     } 

本文链接:http://www.cnblogs.com/zhangtingkuo/archive/2014/08/01/3884689.html

http://www.bkjia.com/Androidjc/859129.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/859129.htmlTechArticleAndroidUI系统之 ListView篇 1.创建一个项目:ListViewLearn 2.修改MainActivity,继承于ListActivity 3.创建一个String数组,用来保存ListView中的现实内容...

本文源自: 凯发国际