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(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.     
  7.         android:id="@android:id/list" 
  8.         android:layout_width="fill_parent" 
  9.         android:layout_height="fill_parent" 
  10.         android:background="#FFFFFF00" > 
  11.      
  12.  
  13.  

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(this, 
  6.               android.R.layout.simple_dropdown_item_1line, Util.COUNTRYS)); 
  7.   }

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

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

 
 
 
 
  1.  
  2.     android:layout_width="match_parent" 
  3.     android:layout_height="match_parent" 
  4.     android:orientation="horizontal" > 
  5.  
  6.     
  7.         android:id="@+id/imageViewIcon" 
  8.         android:layout_width="wrap_content" 
  9.         android:layout_height="wrap_content" 
  10.         android:contentDescription="@string/icon" > 
  11.      
  12.  
  13.     
  14.         android:id="@+id/textViewContent" 
  15.         android:layout_width="wrap_content" 
  16.         android:layout_height="wrap_content" > 
  17.      
  18.  
  19.  

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

文章题目:AndroidUI系统之ListView篇
分享路径:http://www.stwzsj.com/qtweb/news17/167.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联