gpt4 book ai didi

Android入门之ListView应用解析(二)

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 28 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Android入门之ListView应用解析(二)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

上一篇关于Android中ListView的介绍讲的是如何制作一个具有两行文本的自定义控件,作为ListView的Item的使用方法。本文接下来也是围绕ListView和Item,更加深入地介绍它们的用法.

首先,先来看看本文代码运行的结果,本文的Item比上一篇中的Item多出左边的图标:

Android入门之ListView应用解析(二)

main.xml的源代码,跟上一篇的一样,这里就不作解释了,直接贴出item.xml的代码,就是它实现ImageItem的UI:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<? xml version = "1.0" encoding = "utf-8" ?>
< RelativeLayout
      android:layout_width = "fill_parent"
      xmlns:android = "http://schemas.android.com/apk/res/android"
      android:layout_height = "wrap_content"
      android:paddingBottom = "4dip"
      android:paddingLeft = "12dip" >
      < ImageView
         android:layout_width = "wrap_content"
         android:id = "@+id/itemImage" android:layout_height = "fill_parent"
      </ ImageView >
      < TextView
         android:text = "TextView01"
         android:layout_height = "wrap_content"
         android:layout_width = "fill_parent"
         android:id = "@+id/itemTitle" android:layout_toRightOf = "@+id/itemImage" android:textSize = "20dip" >
      </ TextView >
      < TextView
         android:text = "TextView02"
         android:layout_height = "wrap_content"
         android:layout_width = "fill_parent"
         android:id = "@+id/itemText" android:layout_toRightOf = "@+id/itemImage" android:layout_below = "@+id/itemTitle" >
      </ TextView >
</ RelativeLayout >

解释一下 item.xml的代码:这里使用了RelativeLayout布局,控件的关键的属性是:

itemTitle的属性 android:layout_toRightOf="@+id/itemImage" ,itemTitle在itemImage的右边; 。

itemText的属性 android:layout_toRightOf="@+id/itemImage",ItemText在itemImage的右边, android:layout_below="@+id/itemTitle", itemText 在 itemTitle的下面.

最后,贴出JAVA的源代码,代码中的重点是LayoutInflate的用法。LayoutInflate的使用方法如下:

LayoutInflater的作用是,把一个View的对象与XML布局文件关联并实例化。 View的对象实例化之后,可以通过findViewById()查找布局文件中的指定Id的组件.

Java代码如下:

  1. package com.testListView; 
  2.  
  3. import android.app.Activity; 
  4. import android.content.Context; 
  5. import android.os.Bundle; 
  6. import android.view.LayoutInflater; 
  7. import android.view.View; 
  8. import android.view.ViewGroup; 
  9. import android.widget.BaseAdapter; 
  10. import android.widget.ImageView; 
  11. import android.widget.ListView; 
  12. import android.widget.TextView; 
  13.  
  14. public class testListView extends Activity { 
  15.  ListView listView; 
  16.  String[] titles={"标题1","标题2","标题3","标题4"}; 
  17.  String[] texts={"文本内容A","文本内容B","文本内容C","文本内容D"}; 
  18.  int[] resIds={R.drawable.icon,R.drawable.icon,R.drawable.icon,R.drawable.icon}; 
  19.   
  20.  @Override 
  21.  public void onCreate(Bundle savedInstanceState) { 
  22.  super.onCreate(savedInstanceState); 
  23.  setContentView(R.layout.main); 
  24.  this.setTitle("BaseAdapter for ListView"); 
  25.  listView=(ListView)this.findViewById(R.id.listView1); 
  26.  listView.setAdapter(new ListViewAdapter(titles,texts,resIds)); 
  27.  } 
  28.  
  29.  public class ListViewAdapter extends BaseAdapter { 
  30.  View[] itemViews; 
  31.  
  32.  public ListViewAdapter(String[] itemTitles, String[] itemTexts, 
  33.   int[] itemImageRes) { 
  34.   itemViews = new View[itemTitles.length]; 
  35.  
  36.   for (int i = 0; i < itemViews.length; i++) { 
  37.   itemViews[i] = makeItemView(itemTitles[i], itemTexts[i], 
  38.    itemImageRes[i]); 
  39.   } 
  40.  } 
  41.  
  42.  public int getCount() { 
  43.   return itemViews.length; 
  44.  } 
  45.  
  46.  public View getItem(int position) { 
  47.   return itemViews[position]; 
  48.  } 
  49.  
  50.  public long getItemId(int position) { 
  51.   return position; 
  52.  } 
  53.  
  54.  private View makeItemView(String strTitle, String strText, int resId) { 
  55.   LayoutInflater inflater = (LayoutInflater) testListView.this 
  56.    .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
  57.  
  58.   // 使用View的对象itemView与R.layout.item关联 
  59.   View itemView = inflater.inflate(R.layout.item, null); 
  60.  
  61.   // 通过findViewById()方法实例R.layout.item内各组件 
  62.   TextView title = (TextView) itemView.findViewById(R.id.itemTitle); 
  63.   title.setText(strTitle); 
  64.   TextView text = (TextView) itemView.findViewById(R.id.itemText); 
  65.   text.setText(strText); 
  66.   ImageView image = (ImageView) itemView.findViewById(R.id.itemImage); 
  67.   image.setImageResource(resId); 
  68.    
  69.   return itemView; 
  70.  } 
  71.  
  72.  public View getView(int position, View convertView, ViewGroup parent) { 
  73.   if (convertView == null
  74.   return itemViews[position]; 
  75.   return convertView; 
  76.  } 
  77.  } 
  78.  

最后此篇关于Android入门之ListView应用解析(二)的文章就讲到这里了,如果你想了解更多关于Android入门之ListView应用解析(二)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com