`
09zcliang
  • 浏览: 21878 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

listView 的Adapter重写满足listview加载多项

阅读更多

package health.week;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

class ListViewInfo{
int image;
String text1;
String text2;
}
public class HEALTH_WEEKActivity extends Activity {
/** Called when the activity is first created. */
TextView newDate ;
TextView Week ;
TextView oldDate ;
TextView festival ;
TextView Location ;
String newDateString = null;
String ClockString = null;
String WeekString = null;
String oldDateString = null;
String festivalString = null;
GridView Menu = null;
ListView Function = null;
ImageButton mySave ;
ImageButton fristpage ;
ImageButton setting;
ImageButton history;
ImageButton quit ;
ArrayList<HashMap<String,Object>> functionGrid;
ArrayList<ListViewInfo> functionList;
HashMap<String,Object> tempHashMap = null;
ListViewInfo listViewInfo = null;
SimpleAdapter gridAdapter;
ListAdapter listAdapter;
Calendar getNewDate;
boolean systemTimeThreadStatus = true;
final static String[] weekList = new String[]{"周日","周一","周二","周三","周四","周五","周六"};
final static String chineseNumber[] = {"一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//------------------界面处理(加载)--------------------------
newDate = (TextView)this.findViewById(R.id.newdate);
oldDate = (TextView)this.findViewById(R.id.olddate);
Week = (TextView)this.findViewById(R.id.week) ;
festival= (TextView)this.findViewById(R.id.qijie) ;
Location= (TextView)this.findViewById(R.id.location);
Menu = (GridView)this.findViewById(R.id.gridView1);
Function= (ListView)this.findViewById(R.id.function);
fristpage=(ImageButton)this.findViewById(R.id.fristpage);
mySave = (ImageButton)this.findViewById(R.id.mysave);
history = (ImageButton)this.findViewById(R.id.history);
setting = (ImageButton)this.findViewById(R.id.setting);
quit = (ImageButton)this.findViewById(R.id.quit);
//-------------------界面配置--------------------------------
functionGrid = new ArrayList<HashMap<String,Object>>();
tempHashMap = new HashMap<String, Object>();
tempHashMap.put("Name", "食物相克");
tempHashMap.put("Image", R.drawable.ic_launcher);
functionGrid.add(tempHashMap);
tempHashMap = new HashMap<String, Object>();
tempHashMap.put("Name", "四季靓汤");
tempHashMap.put("Image", R.drawable.ic_launcher);
functionGrid.add(tempHashMap);
tempHashMap = new HashMap<String, Object>();
tempHashMap.put("Name", "拉伸除疲");
tempHashMap.put("Image", R.drawable.ic_launcher);
functionGrid.add(tempHashMap);
tempHashMap = new HashMap<String, Object>();
tempHashMap.put("Name", "物件好用处");
tempHashMap.put("Image", R.drawable.ic_launcher);
functionGrid.add(tempHashMap);
gridAdapter = new SimpleAdapter(this,functionGrid,R.layout.gridview,new String[]{"Name","Image"},new int[]{R.id.gridtextView,R.id.gridimageView});
functionList = new ArrayList<ListViewInfo>();
listViewInfo = new ListViewInfo();
listViewInfo.image = R.drawable.ic_launcher;
listViewInfo.text1 = "食物相克:";
listViewInfo.text2 = "........................" +
"................................." +
"................................";
functionList.add(listViewInfo);
listViewInfo = new ListViewInfo();
listViewInfo.image = R.drawable.ic_launcher;
listViewInfo.text1 = "四季靓汤:";
listViewInfo.text2 = "........................" +
"................................." +
"................................";
functionList.add(listViewInfo);
listViewInfo = new ListViewInfo();
listViewInfo.image = R.drawable.ic_launcher;
listViewInfo.text1 = "拉伸除疲:";
listViewInfo.text2 = "........................" +
"................................." +
"................................";
functionList.add(listViewInfo);
listViewInfo = new ListViewInfo();
listViewInfo.image = R.drawable.ic_launcher;
listViewInfo.text1 = "物件好用处:";
listViewInfo.text2 = "........................" +
"................................." +
"................................";
functionList.add(listViewInfo);
listAdapter = new ListAdapter(this);
Menu.setAdapter(gridAdapter);
Function.setAdapter(listAdapter);
fristpage.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

}
});
mySave.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

}
});
history.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

}
});
setting.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

}
});
quit.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

}
});
}

public final class ViewHolder {

public ImageView img;

public TextView title;

public TextView info;
}


class ListAdapter extends BaseAdapter{
private LayoutInflater mInflater;
ListAdapter(Context context){
mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return functionList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder = null;
if (convertView == null) {

holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.listview, null);
holder.img = (ImageView) convertView.findViewById(R.id.listimageView);
holder.title = (TextView) convertView.findViewById(R.id.listtextView1);
holder.info = (TextView) convertView.findViewById(R.id.listtextView2);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.img.setImageDrawable(getResources().getDrawable(functionList.get(position).image));
holder.title.setText((String) functionList.get(position).text1);
holder.info.setText((String) functionList.get(position).text2);
return convertView;
}
}
}

 

 

//-------------------layout布局for listview---------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >

<ImageView
android:id="@+id/listimageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />

<RelativeLayout
android:id="@+id/relativeLayout2"
android:layout_width="wrap_content"
android:layout_height="match_parent" >

<TextView
android:id="@+id/listtextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="TextView" />

</RelativeLayout>

</LinearLayout>

</RelativeLayout>

<RelativeLayout
android:id="@+id/relativeLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TextView
android:id="@+id/listtextView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="TextView" />

</RelativeLayout>

</LinearLayout>

//----------------------------布局for gridview------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<ImageView
android:id="@+id/gridimageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_launcher" />

</RelativeLayout>

<RelativeLayout
android:id="@+id/relativeLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TextView
android:id="@+id/gridtextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="TextView" />

</RelativeLayout>

</LinearLayout>

 

 

分享到:
评论

相关推荐

    Android实现的ListView-ListViewAdapter(新闻列表事例)

    综上所述,"Android实现的ListView-ListViewAdapter(新闻列表事例)"是一个涵盖了Android基础组件使用、数据绑定、事件处理、性能优化等多个方面的实践案例,对于深入理解Android开发非常有帮助。通过这个实例,...

    Android ListView 下拉刷新、上拉加载

    2. 自定义滚动效果:通过重写ListView的onScroll()和onScrollStateChanged()方法,可以实现自定义的滚动行为。 3. 自定义触摸事件处理:通过覆写onInterceptTouchEvent()和onTouchEvent()方法,可以控制ListView的...

    Android ListView adapter不同布局

    在Android开发中,ListView是展示大量数据的一种常见组件,它允许用户滚动查看多个项。然而,有时我们需要在同一个ListView中显示具有不同布局的项,这通常涉及到自定义Adapter的使用。"Android ListView adapter...

    listview加载更多

    "ListView加载更多"功能是用户滚动到列表底部时自动加载新数据的一种交互模式,它提升了用户体验,减少了用户手动刷新的操作。本教程将深入讲解如何实现ListView的上拉加载更多功能。 1. **基础概念** - `ListView...

    ListView底部加载更多demo

    总之,ListView的底部加载更多功能是Android开发中的常见需求,它涉及到ListView的滚动事件监听、数据加载的异步处理、Adapter的更新等多个知识点。通过这个demo,开发者可以深入了解并实践这些技术,提升自己的...

    android BaseAdapter listView优化

    总之,ListView和BaseAdapter的优化是一项涉及多方面的任务,需要综合考虑数据加载、视图复用、UI更新等多个环节。理解其工作原理并实施上述优化策略,可以帮助我们构建出更加高效、流畅的列表展示效果。

    Android 实现ListView滚动到底部自动加载数据

    这可以通过重写ListView的OnScrollListener来实现。在onScrollStateChanged()方法中,我们可以判断当前ListView是否处于滚动状态;而在onScroll()方法中,我们可以检查当前是否已经滚动到列表的底部。判断底部的方法...

    ListView的简单应用和滑动加载数据

    创建一个简单的ListView应用,首先要创建一个继承自BaseAdapter的自定义Adapter,重写其中的几个关键方法:`getCount()`返回数据源的大小,`getItem(int position)`获取指定位置的数据,`getItemId(int position)`...

    listView adapter

    通常,当用户滚动到列表底部时,触发加载更多数据的请求,然后更新Adapter的数据集并调用`notifyDataSetChanged()`。 8. 性能优化:除了ViewHolder,还可以通过设置ListView的缓存颜色状态、启用回收机制等方法...

    ListView底部加载更多入门小例子

    综上所述,实现ListView底部加载更多的功能,需要理解ListView的工作原理,熟悉Adapter的使用,并能够监听和处理滚动事件。通过这个小例子,开发者可以学习到如何在实际项目中提升用户体验,同时也能掌握更多的...

    ListView动态加载

    在ListView中,不是一次性加载所有数据,而是只加载屏幕可见的部分,当用户滚动时,再按需加载更多数据。这样可以减少内存消耗,提高应用启动速度,尤其是处理大数据集时。 实现ListView动态加载通常有两种方法: ...

    Android 自绘listview 上拉加载更多,下拉刷新

    上拉加载更多是在用户滚动到ListView底部时,自动加载更多的数据,而下拉刷新则是用户在顶部拉动ListView时,刷新当前显示的数据。 要实现自绘ListView,我们需要继承自ListView并重写其关键方法。自绘主要涉及`...

    嵌套LISTVIEW嵌套adapter

    - 适配器需要重写`getView()`方法,该方法用于创建和设置每个ListView项的视图。 2. **嵌套ListView的实现**: - 首先,你需要为外层ListView创建一个适配器,这将包含内层ListView的数据。 - 内层ListView的...

    listview分页加载

    你需要创建一个自定义的Adapter,重写`notifyDataSetChanged()`方法,以便在数据更新时通知ListView刷新视图。同时,Adapter需要知道何时加载下一页数据。 3. OnScrollListener:添加一个`AbsListView....

    Android-使ListView和RecyclerView更容易实现加载更多的功能

    总之,实现ListView和RecyclerView的加载更多功能涉及监听滚动事件、判断底部、加载数据、更新Adapter和显示加载状态等多个环节。通过合理的封装和自动化工具,我们可以简化这一过程,使得加载更多功能的实现更加...

    Android 重写Listview实现左滑删除功能

    本项目"Android 重写Listview实现左滑删除功能"旨在教你如何在ListView中添加滑动删除的交互效果。 首先,我们需要理解ListView的工作原理。ListView通过复用View(也称为ViewHolder模式)来优化性能,减少内存消耗...

    ListView中Adapter、填充器

    - 滚动监听:可以通过设置OnScrollListener监听ListView的滚动事件,进行相关操作,如加载更多数据。 - 分组与折叠:对于层次结构的数据,可以使用ExpandableListView,支持子项的展开和折叠。 - 动画效果:...

    android控件应用 自定义的ListView控件,下拉刷新上拉加载更多

    自定义ListView不仅可以满足基本的显示需求,还能实现更多的交互效果,如下拉刷新和上拉加载更多功能。这两种功能在现今的移动应用中非常常见,可以提供更好的用户体验,使用户能够即时获取新数据而无需离开当前界面...

    最简单可用listview上拉刷新下拉加载demo

    然而,为了提供更好的用户体验,开发者经常需要在ListView中实现上拉刷新(Pull-to-Refresh)和下拉加载更多(Load More)的功能。"最简单可用listview上拉刷新下拉加载demo"就是这样一个示例项目,它为初学者提供了...

    ListView动态加载刷新

    当`scrollState`为SCROLL_STATE_IDLE(停止滚动)且`lastVisibleItem`等于`adapter.getCount()` - 1(即最后一个可见项)时,表示已滚动到底部,可以调用后台接口加载更多数据。 3. **异步加载**:为了保证用户体验...

Global site tag (gtag.js) - Google Analytics