- 浏览: 285445 次
- 性别:
- 来自: 北京
最新评论
-
肆无忌惮_:
多谢楼主分享
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 28114android手机给应用分配的 ... -
Android Market 链接的生成与分享
2012-02-21 11:59 5142通过Java包名直接定位到 ... -
android 事件处理过程
2011-12-16 14:37 1131转自:http://blog.sina.com.c ... -
【转】设置android程序平板下全屏
2011-12-13 11:11 3103【转自】http://blog.csdn.net/huoshe ... -
android 图片处理
2011-11-24 10:11 3248多张图片四个方位的图片合成,改变bitmap大小,图片去色等功 ... -
android 手机指令大全
2011-11-23 17:59 1*#*#4636#*#* 显示手机信息、电池信息、电池记录 ... -
Android-Activity Task 与 Intent Filter Flag
2011-11-17 10:47 4451接触 Android 以来,一直 ... -
ListView加载原理
2011-10-20 10:52 1320http://www.cnblogs.com/xiaowenj ... -
【转】SoftReference 和 WeakReference
2011-10-10 10:45 1580Java 和 Android 内存优化的两个类:SoftRef ... -
android异常处理发送消息给服务器
2011-10-08 18:45 3192转自:http://www.cnblogs.com/st ... -
通过Compatibility Package低版本使用Fragment
2011-09-26 16:47 4637android 3.0有很多新特性 其中有Fragmen ... -
PopupWindow+listItem 泡泡效果
2011-09-21 15:48 3948package com.my; import androi ... -
Notification使用
2011-09-20 18:52 2070代码:package com.my; import a ... -
ViewSwitcher,ImageSwitcher,TextSwitcher的使用
2011-09-19 14:45 3223ImageSwitcher用于图片的切换动画效果 TextS ... -
requestWindowFeature使用详解
2011-09-19 10:41 100180requestWindowFeature可以设置的值有: / ... -
ViewSwitcher的使用
2011-09-16 10:17 4592[Android]ViewSwitcher使用范例 作 ... -
通过createPackageContext 实现皮肤打包成apk的demo
2011-09-14 16:56 4787通过Context friendContext = ... -
android selector使用
2011-08-30 10:10 3319转自:http://blog.sina.com ... -
android shape的使用
2011-08-30 10:07 1169转自:http://dev.10086.cn/cmdn/wi ... -
android迅雷下载搭建开发环境
2011-07-13 10:57 2181附件中有图片 转自: ...
相关推荐
ListView中使用自定义Adapter及时更新数据
安卓listview自定义adapter包括demo和一些其他自定义绑定的代码
listview 自定义adapter的例子demo
Android自定义adapter的listview代码
Android ListView 自定义adapter好友列表
为便于学习自定义的Adapter,本案例的界面未进行美化,功能已经实现,对于其中的getView(int position,View view ,...本案例功能及其简单,只涉及ListView中自定义适配器,没有对其中的点击等其他操作进行展开。
ListView自定义Adapter实现多视图Item
listview自定义Adapter实现仿qq页面,内部代码有详细注释,
Android listview例子, 采用自定义Adapter:包含了Button控件
新手学习,listview自定义Adapter显示省名并配置item事件,通过自定义adapter显示省份,点击item用toast提示点击内容
Android之自定义Adapter的ListView
Flutter学习之旅(六)----ListView控件自定义Adapter以及带参数跳转,博客对应地址:http://blog.csdn.net/zhangxiangliang2/article/details/76383244
简单的listview自定义适配器的使用方法,注释很清晰,也有对应的博文介绍
TabHost中填充自定义ListView
使用SimpleAdapter和自定义Adapter分别实现了ListView的填充,自定义的还添加了一个删除的事件。
主要为大家详细介绍了android开发中ListView自定义adapter的封装,ListView的模板写法,感兴趣的小伙伴们可以参考一下
Android ListView 之 自定义Adapter 实现列表条目功能,以及 OnItemClickListener(点击事件) OnScrollListener(滑动事件)事件监听 目录 Android ListView 之 自定义Adapter 实现列表条目功能,以及 ...
ListView与Adapter是Android一组很常用的组合,本篇博客旨在探究它们的各种应用场景
android中listview中的item内容不一样时,我们就可以通过自定义adapter来判断和控制不同的item显示内容
适合学习listView 和自定义适配器朋友使用。 有点击item 触发传值. 标题一》》》》》内容一 标题二》》》》》内容二 可以实现这种点击这种效果