package com.bwei.Test.zhangjian20170807listview;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private List<String> list;
private PullToRefreshListView listView;
private Handler handler=new Handler();
private int TYPE_1=0;
private int TYPE_2=1;
private int TYPE_3=2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//listView= (ListView) findViewById(R.id.lv);
listView= (PullToRefreshListView) findViewById(R.id.lv);
list=new ArrayList<>();
for (int i=1;i<20;i++){
list.add("条目"+i);
}
//适配内容
MyAdapter adapter=new MyAdapter();
listView.setAdapter(adapter);
listView.setPullToRefreshEnabled(true);
//设置刷新模式
listView.setMode(PullToRefreshBase.Mode.BOTH);
//下拉刷新事件
listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
Toast.makeText(MainActivity.this, "我下拉刷新了", Toast.LENGTH_SHORT).show();
handler.postDelayed(new Runnable() {
@Override
public void run() {
listView.onRefreshComplete();
}
},2000);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
Toast.makeText(MainActivity.this, "我上拉加载了", Toast.LENGTH_SHORT).show();
handler.postDelayed(new Runnable() {
@Override
public void run() {
listView.onRefreshComplete();
}
},2000);
}
});
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return list!=null?list.size():0;
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
//判断类型
int type=getItemViewType(position);
if (convertView==null){
holder=new ViewHolder();
switch (type){
case 0:
convertView=View.inflate(MainActivity.this,R.layout.item1,null);
holder.textView= (TextView) convertView.findViewById(R.id.tv1);
holder.checkBox= (CheckBox) convertView.findViewById(R.id.cb);
break;
case 1:
convertView=View.inflate(MainActivity.this,R.layout.item2,null);
holder.textView= (TextView) convertView.findViewById(R.id.tv1);
break;
case 2:
convertView=View.inflate(MainActivity.this,R.layout.item3,null);
holder.textView= (TextView) convertView.findViewById(R.id.tv1);
holder.imageView= (ImageView)convertView.findViewById(R.id.iv);
break;
}
convertView.setTag(holder);
}else {
holder= (ViewHolder) convertView.getTag();
}
holder.textView.setText(list.get(position));
switch (type){
case 0:
holder.checkBox.setChecked(true);
break;
case 1:
break;
case 2:
holder.imageView.setImageResource(R.mipmap.vip);
break;
}
return convertView;
}
@Override
public int getViewTypeCount() {
return 3;
}
@Override
public int getItemViewType(int position) {
int type=position%6;
if (type==0){
return TYPE_1;
}else if (type<3){
return TYPE_2;
}else if (type<6){
return TYPE_3;
}else {
return TYPE_1;
}
}
}
class ViewHolder{
TextView textView;
CheckBox checkBox;
ImageView imageView;
}
}
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private List<String> list;
private PullToRefreshListView listView;
private Handler handler=new Handler();
private int TYPE_1=0;
private int TYPE_2=1;
private int TYPE_3=2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//listView= (ListView) findViewById(R.id.lv);
listView= (PullToRefreshListView) findViewById(R.id.lv);
list=new ArrayList<>();
for (int i=1;i<20;i++){
list.add("条目"+i);
}
//适配内容
MyAdapter adapter=new MyAdapter();
listView.setAdapter(adapter);
listView.setPullToRefreshEnabled(true);
//设置刷新模式
listView.setMode(PullToRefreshBase.Mode.BOTH);
//下拉刷新事件
listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
Toast.makeText(MainActivity.this, "我下拉刷新了", Toast.LENGTH_SHORT).show();
handler.postDelayed(new Runnable() {
@Override
public void run() {
listView.onRefreshComplete();
}
},2000);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
Toast.makeText(MainActivity.this, "我上拉加载了", Toast.LENGTH_SHORT).show();
handler.postDelayed(new Runnable() {
@Override
public void run() {
listView.onRefreshComplete();
}
},2000);
}
});
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return list!=null?list.size():0;
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
//判断类型
int type=getItemViewType(position);
if (convertView==null){
holder=new ViewHolder();
switch (type){
case 0:
convertView=View.inflate(MainActivity.this,R.layout.item1,null);
holder.textView= (TextView) convertView.findViewById(R.id.tv1);
holder.checkBox= (CheckBox) convertView.findViewById(R.id.cb);
break;
case 1:
convertView=View.inflate(MainActivity.this,R.layout.item2,null);
holder.textView= (TextView) convertView.findViewById(R.id.tv1);
break;
case 2:
convertView=View.inflate(MainActivity.this,R.layout.item3,null);
holder.textView= (TextView) convertView.findViewById(R.id.tv1);
holder.imageView= (ImageView)convertView.findViewById(R.id.iv);
break;
}
convertView.setTag(holder);
}else {
holder= (ViewHolder) convertView.getTag();
}
holder.textView.setText(list.get(position));
switch (type){
case 0:
holder.checkBox.setChecked(true);
break;
case 1:
break;
case 2:
holder.imageView.setImageResource(R.mipmap.vip);
break;
}
return convertView;
}
@Override
public int getViewTypeCount() {
return 3;
}
@Override
public int getItemViewType(int position) {
int type=position%6;
if (type==0){
return TYPE_1;
}else if (type<3){
return TYPE_2;
}else if (type<6){
return TYPE_3;
}else {
return TYPE_1;
}
}
}
class ViewHolder{
TextView textView;
CheckBox checkBox;
ImageView imageView;
}
}