- 浏览: 286758 次
- 性别:
- 来自: 北京
最新评论
-
肆无忌惮_:
多谢楼主分享
android内存泄露优化总结 -
wwwjiandan:
我用自定义Action为什么每次调用Activity时都提示找 ...
Activity之间的通信与自定义Action -
Zero颴:
写得好
android内存泄露优化总结 -
pigeon200461:
你好!请问你的这个项目里面是否使用sqlite3数据库。
android通过webview+jquery设计界面 -
ZHxin:
在activity中引入Fragment的xml方式确信能在低 ...
通过Compatibility Package低版本使用Fragment
虽然android类库给我们提供了很多与ListView适配的Adapter并且使用起来非常方便,但是想要开发出美观的程序,自带的是不够的所以我们要重写Adapter。
1.继承BaseAdapter类
2.重写getView()--每一项显示成什么样有它决定
3.重写getCount()--一共有多少项由它决定
4.实现OnItemClickListener事件--为每一项添加事件实现onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3)事件。
下面是一个简单的例子:
package net.my.jokebook;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RatingBar;
import android.widget.TextView;
public class Default extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.deaultxml);
List<String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
//得到想要填充的ListView
ListView lv =(ListView)findViewById(R.id.lvjokes);
RatingAdapter adapter = new RatingAdapter(this,list);
//此处必须为通过上面这种方式new的RatingAdapter否则listInner会为空
//为ListView添加事件
lv.setOnItemClickListener(adapter);
lv.setAdapter(adapter);
}
//定义一个内部类继承BaseAdapter类并实现OnItemClickLister接口
class RatingAdapter extends BaseAdapter implements OnItemClickListener
{
LayoutInflater layoutInflater;
String inflater = Context.LAYOUT_INFLATER_SERVICE;
private List<String> listInner = null;
public RatingAdapter(Context context)
{}
public RatingAdapter(Context context,List<String> list){
layoutInflater = (LayoutInflater) context
.getSystemService(inflater);
this.listInner = list;
}
public int getCount() {
//通过此项决定ListView一共有多少Item
return listInner.size();
}
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return listInner.get(arg0);
}
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
//为每一项中的控件赋值,每一项显示的数据有它决定
public View getView(int arg0, View arg1, ViewGroup arg2) {
//得到模板布局文件对象 ,并为其中的控件赋值
LinearLayout linearLayout = (LinearLayout) layoutInflater.inflate(
R.layout.defaultmodel, null);
TextView tvTitle = (TextView)linearLayout.findViewById(R.id.tvTitle);
//tvTitle.setText(list.get(arg0));
tvTitle.setText(Html.fromHtml("<font color=\"#0000ff\">"+listInner.get(arg0)+"</font>"));
TextView tvContent = (TextView)linearLayout.findViewById(R.id.tvContent);
//此处直接给内容了
tvContent.setText("Content");
RatingBar rbLeavel =(RatingBar)linearLayout.findViewById(R.id.rbLevel);
rbLeavel.setRating(Float.parseFloat("4.0"));
return linearLayout;
}
//实现onItemClick()方法
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
//对单击每一项的处理
new AlertDialog.Builder(Default.this).setTitle(listInner.get(arg2)).setMessage(String.valueOf(arg3)).show();
}
}
}
布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ListView
android:id="@+id/lvjokes"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
></ListView>
</LinearLayout>
每项布局文件(模板):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:orientation="vertical"
android:layout_height="wrap_content">
<TextView android:id="@+id/tvTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<RelativeLayout
android:id="@+id/llDes"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView android:id="@+id/tvContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<RatingBar android:id="@+id/rbLevel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/ratingBarStyleSmall"
android:layout_alignParentRight="true"
android:rating="3"
android:numStars="5"
></RatingBar>
</RelativeLayout>
</LinearLayout>
发表评论
-
android内存泄露优化总结
2012-03-25 12:50 28177android手机给应用分配的 ... -
Android Market 链接的生成与分享
2012-02-21 11:59 5201通过Java包名直接定位到 ... -
android 事件处理过程
2011-12-16 14:37 1149转自:http://blog.sina.com.c ... -
【转】设置android程序平板下全屏
2011-12-13 11:11 3129【转自】http://blog.csdn.net/huoshe ... -
android 图片处理
2011-11-24 10:11 3283多张图片四个方位的图片合成,改变bitmap大小,图片去色等功 ... -
android 手机指令大全
2011-11-23 17:59 1*#*#4636#*#* 显示手机信息、电池信息、电池记录 ... -
Android-Activity Task 与 Intent Filter Flag
2011-11-17 10:47 4480接触 Android 以来,一直 ... -
ListView加载原理
2011-10-20 10:52 1339http://www.cnblogs.com/xiaowenj ... -
【转】SoftReference 和 WeakReference
2011-10-10 10:45 1598Java 和 Android 内存优化的两个类:SoftRef ... -
android异常处理发送消息给服务器
2011-10-08 18:45 3221转自:http://www.cnblogs.com/st ... -
通过Compatibility Package低版本使用Fragment
2011-09-26 16:47 4683android 3.0有很多新特性 其中有Fragmen ... -
PopupWindow+listItem 泡泡效果
2011-09-21 15:48 3972package com.my; import androi ... -
Notification使用
2011-09-20 18:52 2097代码:package com.my; import a ... -
ViewSwitcher,ImageSwitcher,TextSwitcher的使用
2011-09-19 14:45 3247ImageSwitcher用于图片的切换动画效果 TextS ... -
requestWindowFeature使用详解
2011-09-19 10:41 100247requestWindowFeature可以设置的值有: / ... -
ViewSwitcher的使用
2011-09-16 10:17 4630[Android]ViewSwitcher使用范例 作 ... -
通过createPackageContext 实现皮肤打包成apk的demo
2011-09-14 16:56 4814通过Context friendContext = ... -
android selector使用
2011-08-30 10:10 3358转自:http://blog.sina.com ... -
android shape的使用
2011-08-30 10:07 1195转自:http://dev.10086.cn/cmdn/wi ... -
android迅雷下载搭建开发环境
2011-07-13 10:57 2213附件中有图片 转自: ...
相关推荐
安卓listview自定义adapter包括demo和一些其他自定义绑定的代码
本篇将详细讲解如何在ListView中使用自定义Adapter来实现数据的及时更新。 首先,我们需要理解ListView的工作原理。ListView通过Adapter来与数据源进行交互,Adapter是连接数据集和视图的桥梁。它负责从数据集中...
在实际应用中,为了满足各种界面设计需求,通常需要自定义ListView的Adapter。本示例将详细介绍如何自定义ListView的Adapter,以实现个性化的数据展示。 首先,我们需要理解Adapter的作用。Adapter是连接ListView和...
为了实现更加灵活和丰富的界面展示,我们通常需要对ListView进行自定义,这涉及到自定义Adapter的使用。自定义Adapter允许我们根据需求定制ListView的每一项视图,以适应不同的数据结构和界面设计。 首先,我们需要...
本文将深入探讨如何在Eclipse开发环境中利用ListView结合Adapter来展示数据。 首先,`ListView`是一个可滚动的视图,用于显示一组项目,每个项目都是一个单独的视图。它通过复用视图(ViewHolder模式)提高性能,...
为便于学习自定义的Adapter,本案例的界面未进行美化,功能已经实现,对于其中的getView(int position,View view ,...本案例功能及其简单,只涉及ListView中自定义适配器,没有对其中的点击等其他操作进行展开。
然而,在实际应用中,我们经常需要对ListView进行自定义,以满足各种界面设计需求。本篇将重点讲解如何在ListView中实现自定义图片背景,同时确保背景在滚动时无闪烁,且不随ScrollBar移动。 首先,我们需要明白...
在本示例中,我们关注的是如何在ListView中集成Button控件,并通过自定义Adapter来实现这一功能。这涉及到Android UI设计、数据绑定和事件处理等多个方面。 首先,我们了解ListView的基本原理。ListView通过Adapter...
接着,创建了一个名为`ListViewAdapter`的自定义Adapter,继承自`BaseAdapter`,并传入上下文和数据集作为构造函数参数。然后,通过`listView.setAdapter(listViewAdapter)`将Adapter绑定到ListView上。 在`getView...
为了使ListView显示的数据更加丰富多样,我们通常需要自定义适配器(Adapter)。本文将深入探讨如何创建和使用ListView的自定义适配器,以及它的工作原理。 首先,我们要理解适配器在ListView中的角色。适配器是...
最后,记得在Activity或Fragment中设置自定义Adapter到ListView上,这样ListView就能正确地展示多视图Item了。 通过以上步骤,我们就可以实现ListView自定义Adapter的多视图Item功能。这不仅可以使列表更具多样性,...
自定义Adapter是Android开发中的一个重要环节,它允许我们根据需求定制ListView的显示样式和交互方式。 首先,理解ListView的工作原理至关重要。ListView通过Adapter获取数据,并将其转化为可显示的View。Adapter就...
4. 在Activity或Fragment中设置Adapter:将数据集和自定义Adapter传入ListView,并设置Adapter。 ```java List<Friend> friends = ...; // 初始化好友列表 FriendListAdapter adapter = new FriendListAdapter(this...
在Android开发中,`TabHost` 是一个非常重要的组件,用于实现多标签页面的切换,而将自定义的`ListView`填充到`TabHost`中则可以构建出复杂的交互界面。下面我们将详细探讨如何实现这一功能。 首先,我们需要了解`...
本篇主要讲解如何在Android Studio中使用ListView,并结合自定义的BaseAdapter来实现数据的绑定和显示。 首先,我们需要在布局文件中添加ListView组件。在res/layout目录下的xml布局文件中,可以这样定义一个...
在Android开发中,ListView是展示大量数据的一种常见方式,而Adapter则是实现ListView数据绑定的关键组件。本篇文章将详细探讨Android中的Adapter用法及其在ListView中的应用。 1. **Adapter的概念** - `Adapter`...
对于ListView的伸缩功能,我们可能需要创建一个继承自ListView的自定义Adapter,该Adapter能够处理点击事件,并在需要时显示或隐藏附加的详细信息面板。 在实现过程中,关键在于监听ListView的点击事件。这可以通过...
然后,在Activity或Fragment中设置ListView的Adapter,并在Adapter的getView()方法中复用convertView,以提高性能: ```java public class MyAdapter extends BaseAdapter { // ... @Override public View ...
本教程将深入讲解如何使用自定义Adapter来显示省名,并响应ListView中的item点击事件。Adapter是连接ListView和数据源的关键,它负责将数据转化为ListView可显示的视图。 首先,我们需要创建一个自定义的Adapter类...
在Android开发中,ListView是一个非常重要的组件,它用于展示大量数据列表,比如联系人列表、邮件列表等。要让ListView显示数据,就需要用到Adapter和填充器(Filler)。这两个概念是理解Android列表视图工作原理的...