多条目加载和适配器

package com.bwie.adapters;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.bwie.beans.News;
import com.bwie.xlistviewdemo1.R;

import java.util.ArrayList;

/**
* Created by Administrator on 2017/9/7.
*/

public class MyBaseAdapter extends BaseAdapter {
private Context context;
private ArrayList<News> news;

public MyBaseAdapter(ArrayList<News> news, Context context) {
this.news = news;
this.context = context;
}

@Override
public int getCount() {
return news.size();
}

@Override
public Object getItem(int position) {
return null;
}

@Override
public long getItemId(int position) {
return 0;
}

//多条目的数量
@Override
public int getViewTypeCount() {
return 2;
}

@Override
public int getItemViewType(int position) {

return position%2;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder1 holder1;
ViewHolder2 holder2;
int rs = getItemViewType(position);//获得当前条目使用的是第几种条目
News newsObj = news.get(position);//得到要展示的数据
if(rs == 0){//第一种条目
if (convertView == null){
holder1 = new ViewHolder1();
convertView = View.inflate(context, R.layout.lsitview_item_1,null);
holder1.textView = (TextView) convertView.findViewById(R.id.mytitle);
convertView.setTag(holder1);
}else{
holder1 = (ViewHolder1) convertView.getTag();
}
//赋值
holder1.textView.setText(newsObj.getTitle());

}else if(rs == 1){//第二种条目
if (convertView == null){
holder2 = new ViewHolder2();
convertView = View.inflate(context, R.layout.listview_item_2,null);
holder2.textView = (TextView) convertView.findViewById(R.id.mytitle);
holder2.imageView = (ImageView) convertView.findViewById(R.id.imageView);
convertView.setTag(holder2);
}else{
holder2 = (ViewHolder2) convertView.getTag();
}
//赋值
holder2.textView.setText(newsObj.getTitle());
//通过imageloader加载图片,显示在次行
// ImageLoader.getInstance().displayImage(newsObj.getPicUrl(),holder2.imageView);
}

return convertView;
}

class ViewHolder1{
TextView textView;
}
class ViewHolder2{
TextView textView;
ImageView imageView;
}
}

//请求网络的工具类

package com.bwie.xlistviewdemo1;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

/**
* Created by Administrator on 2017/9/7.
*/

public class NetWorkUtils {
public String getJsonByUrlConnection(String jsonUrl){
String str = "";
try {
URL url = new URL(jsonUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
int resCode = conn.getResponseCode();
if(resCode == 200){
InputStream is = conn.getInputStream();
byte[] b = new byte[1024];
int len = 0;
while((len=is.read(b)) != -1){
str += new String(b,0,len);
}
}

} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
}

时间: 2024-10-07 00:40:02

多条目加载和适配器的相关文章

ListView多条目加载

在listView适配器重写的四个方法的基础上,再手动重写两个方法 - 分别是:getViewTypeCount(),确定加载条木有几种数据类型 - getItemViewType(int position)第二个是对数据进行判断和分类的 - 代碼塊--XlistView适配器 //有几个条目类型 @Override public int getViewTypeCount() { return 2; } //判断怎样分辨每个条目的位置 @Override public int getItemVi

多条目加载

这是适配器里面的方法,只需这一点要改就行 public View getView(int position, View convertView, ViewGroup parent) { if (position%2==0){ convertView=View.inflate(context,R.layout.item,null); TextView tv= (TextView) convertView.findViewById(R.id.tv); ImageView image= (ImageV

ListView 条目加载上滑下滑首尾缩放动画实现

要实现这个效果,只需要再适配器getView之前,给每个条目的view设置相应的动画即可. 首先需要2个动画的xml文件. 在res下新建anim文件夹:(res/anim) 第一个动画xml文件: up_from_bottom.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android&

oracle_协议适配器错误_协议适配器不可加载_TNS监听程序在connect-data中未获得service-name

最近在使用powerdesigner连接远程oracle进行反向工程操作时,出现了一些问题,这些问题很普遍,大多是由于配置引起的 说明:(1)远程数据库版本问 oracle11g 64bit (2)本地同时安装 :oracle11g client 32bitoracle11g 64bit (3)本机安装powerdesigner 15.2 (3)前期准备:直接拷贝oracle服务端的%ORACLE_HOME%\network\admin\tnsnames.ora文件到oracle客户端%ORAC

Andorid上拉加载更多的几种实现方式

1.前言 Andriod中上拉加载更多的效果随处可见,因为一次性要展现的数据太多信息量太大的话,给用户的体验就很差(加载慢,界面卡顿.流量消耗大等),而加载更多可以控制每次加载条目的数量以达到快速加载,底部加载更多的方式就显得更人性化,今天就把用过的几种方式总结一下. 2.上拉加载更多的实现方式 ListView控件;作为一种传统列表展现的方式,ListView控件的addHeaderView(...).addFooterView(...)方法很方便的支持头布局.脚布局,参数就是打气筒打出来的布

你必须了解的RecyclerView的五大开源项目-解决上拉加载、下拉刷新和添加Header、Footer等问题

前段时间做项目由于采用的MD设计,所以必须要使用RecyclerView全面代替ListView.但是开发中遇到了需要实现RecyclerView上拉加载.下拉刷新和添加Header以及Footer等需求问题,现将问题解决中用到的五大开源项目总结下来,方便他人. 首先介绍下RecyclerView,RecyclerView相比ListView增加了很多新特性: ? Adapter中的ViewHolder模式 - 对于ListView来说,通过创建ViewHolder来提升性能并不是必须的.因为L

使用谷歌提供的SwipeRefreshLayout下拉控件,并自定义实现下拉加载的功能

package com.loaderman.swiperefreshdemo; import android.os.Bundle; import android.os.Handler; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.AppCompatActivity; import android.view.Gravity; import android.view.View;

[android] 数据的异步加载和图片保存

把从网络获取的图片数据保存在SD卡上, 先把权限都加上 网络权限 android.permission.INTERNET SD卡读写权限 android.permission.MOUNT_UNMOUNT_FILESYSTEMS android.permission.WRITE_EXTERNAL_STORAGE 总体布局  写界面,使用ListView,创建条目的布局文件,水平摆放的ImageView TextView 在activity中获取到ListView对象,调用setAdapter()方

10.下拉刷新、加载更多、标记已读、轮播条、缓存

下拉刷新.加载更多.标记已读.轮播条.缓存 下拉刷新------- 1.addHeaderView必须在setAdapter之前调用 2.将paddingTop设置一个headerView高度的负值去隐藏它 getHeight()和getMeasuredHeight()的区别: getMeasuredHeight():获取测量完的高度,只要在onMeasure方法执行完,就可以用 它获取到宽高,在自定义控件内部多使用这个 使用view.measure(0,0)方法可以主动通知系统去测量,然后就