80,469
社区成员




public View getView(final int position, View view, ViewGroup parent) {
// holder = new ViewHolder();
if (view == null) {
view = inflater.inflate(R.layout.custom_list_item, null);
}
final Button praise = (Button) view.findViewById(R.id.praise);
praise.setText(allMessage.get(position).getPraNum() + "");
praise.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (isPraised(allMessage.get(position).getMsgId())) {
ViewUtil.toastShort("你已经赞过了", (MainActivity) context);
return;
}
praise.setText(allMessage.get(position).getPraNum() + 1 + "");
praise.setBackgroundResource(R.drawable.message_praise_yes);
new DownLoadThread(handler, allMessage.get(position).getMsgId())
.start();
}
});
}
//不加这段就会出现混乱
switch(curr.getVisibleState())
{
case 1:
holder.content.setVisibility(View.VISIBLE);
break;
case 0:
holder.content.setVisibility(View.GONE);
break;
}
//监听状态,更新状态码
trasHolder.arrow_down.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(curr.getVisibleState() == 1){
curr.setVisibleState(0);
trasHolder.content.setVisibility(View.GONE);
}else{
curr.setVisibleState(1);
trasHolder.content.setVisibility(View.VISIBLE);
}
}
});
package com.mars.library.adapter;
import java.util.ArrayList;
import java.util.HashMap;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.mars.library.entry.BookMyBorrow;
import com.mars.library.main.R;
import com.mars.library.util.BookDetailHandler;
import com.mars.library.util.ConstantUtil;
import com.mars.library.util.RequestThread;
import com.mars.library.util.VarUtil;
import com.mars.library.util.ViewUtil;
/**
* Book简单的适配器
*
* @author Administrator
*
*/
@SuppressLint({ "HandlerLeak", "UseSparseArrays" })
public class ListViewBookMyBorrowAdapter extends BaseAdapter {
private Context context;
private ArrayList<BookMyBorrow> allBook;
private LayoutInflater inflater;
//同学:保存按钮的状态,来判断是否有这个按钮。不保存状态的话,下拉以后就可能不显示了。
//同学:因为这个保存是全部保存,而ListView的机制,是保存当前显示的,所以那个不靠谱。但是那个省内存。所以需要保存状态再保存,不需要就不要保存
private HashMap<Integer, Boolean> isCanRenew = new HashMap<Integer, Boolean>();
public ListViewBookMyBorrowAdapter(Context context, ArrayList<BookMyBorrow> allBook) {
this.context = context;
this.allBook = allBook;
this.inflater = LayoutInflater.from(context);
}
@Override
public View getView(final int position, View view, ViewGroup parent) {
// 如果不加这行代码,很容易溢出
if (view == null) {
view = inflater.inflate(R.layout.book_my_borrow_item, null);
}
if (allBook.isEmpty()) {
return view;
}
final ViewHolder holder = new ViewHolder();
holder.item = (RelativeLayout) view.findViewById(R.id.item);
holder.number = (TextView) view.findViewById(R.id.number);
holder.name = (TextView) view.findViewById(R.id.name);
holder.date = (TextView) view.findViewById(R.id.date);
holder.renew = (Button) view.findViewById(R.id.renew);
holder.progress = (ProgressBar) view.findViewById(R.id.progressBar);
holder.number.setText(allBook.get(position).getId());
holder.name.setText(allBook.get(position).getName());
holder.date.setText(allBook.get(position).getDate());
// 点击列表查看图书的详细信息
holder.item.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
lookUpBookDetail(position);
}
});
//同学:看这里
isCanRenew.put(position, allBook.get(position).isRenew());// 保存
//同学:看这里
if (isCanRenew.get(position) == false) {// 如果不可用
holder.renew.setVisibility(View.GONE);
} else {// 如果可以续借
holder.renew.setVisibility(View.VISIBLE);
holder.renew.setEnabled(true);
}
holder.renew.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String url = VarUtil.URL + "/renew";
HashMap<String, String> allParams = new HashMap<String, String>();
allParams.put(ConstantUtil.ACCOUNT, VarUtil.student.getAccount());
allParams.put(ConstantUtil.PASSWORD, VarUtil.student.getPassword());
allParams.put(ConstantUtil.BARCODE, allBook.get(position).getBarcode());
allParams.put(ConstantUtil.DEPARTMENTID, allBook.get(position).getDepartmentId());
allParams.put(ConstantUtil.LIBRARYID, allBook.get(position).getLibraryId());
VarUtil.threadPool.submit(new RequestThread(url, new RenewHandler(holder),
allParams));
}
});
// if (allBook.get(position).isRenew() == false) {
// holder.renew.setVisibility(View.GONE);
// } else {
// holder.renew.setVisibility(View.VISIBLE);
// holder.renew.setEnabled(true);
//
// holder.renew.setOnClickListener(new OnClickListener() {
// @Override
// public void onClick(View v) {
// String url = VarUtil.URL + "/renew";
// HashMap<String, String> allParams = new HashMap<String, String>();
// allParams.put(ConstantUtil.ACCOUNT, VarUtil.student.getAccount());
// allParams.put(ConstantUtil.PASSWORD, VarUtil.student.getPassword());
// allParams.put(ConstantUtil.BARCODE, allBook.get(position).getBarcode());
// allParams.put(ConstantUtil.DEPARTMENTID, allBook.get(position)
// .getDepartmentId());
// allParams.put(ConstantUtil.LIBRARYID, allBook.get(position).getLibraryId());
// VarUtil.threadPool.submit(new RequestThread(url, new RenewHandler(holder),
// allParams));
// }
// });
// }
return view;
}
private void lookUpBookDetail(int position) {
// 根据参数,请求数据
String url = ConstantUtil.URL + "/lib/detail.aspx";
HashMap<String, String> allParams = new HashMap<String, String>();
allParams.put(ConstantUtil.DETAIL, "true");
allParams.put(ConstantUtil.BARCODE, allBook.get(position).getBarcode());
BookDetailHandler handler = new BookDetailHandler((Activity) context);
VarUtil.threadPool.submit(new RequestThread(url, handler, allParams));
}
private class RenewHandler extends Handler {
private ViewHolder holder;
public RenewHandler(ViewHolder holder) {
this.holder = holder;
}
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
// 任务开始
case ConstantUtil.START:
holder.renew.setVisibility(View.INVISIBLE);
holder.progress.setVisibility(View.VISIBLE);
break;
// 任务结束
case ConstantUtil.END:
if (VarUtil.result.equals(ConstantUtil.SUCCESS)) {
holder.renew.setVisibility(View.GONE);
holder.progress.setVisibility(View.GONE);
} else if (VarUtil.result.equals(ConstantUtil.FAIL)) {
holder.renew.setVisibility(View.VISIBLE);
holder.progress.setVisibility(View.INVISIBLE);
ViewUtil.toastShort("续借失败!", (Activity) context);
}
break;
// 任务出错
case ConstantUtil.INTERNET_ERROR:
ViewUtil.toastShort("客户端网络异常!请您稍后重试!", (Activity) context);
break;
default:
break;
}
}
}
class ViewHolder {
RelativeLayout item;
TextView number;
TextView name;
TextView date;
Button renew;
ProgressBar progress;
}
@Override
public int getCount() {
return allBook.size();
}
@Override
public Object getItem(int arg0) {
return allBook.get(arg0);
}
@Override
public long getItemId(int arg0) {
return arg0;
}
}
public View getView(final int position, View view, ViewGroup parent) {
// holder = new ViewHolder();
if (view == null) {
view = inflater.inflate(R.layout.custom_list_item, null);
}
final Button praise = (Button) view.findViewById(R.id.praise);
praise.setText(allMessage.get(position).getPraNum() + "");
praise.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (isPraised(allMessage.get(position).getMsgId())) {
ViewUtil.toastShort("你已经赞过了", context);
return;
}
Button btn = (Button)v;
btn.setText(allMessage.get(position).getPraNum() + 1 + "");
btn.setBackgroundResource(R.drawable.message_praise_yes);
new DownLoadThread(handler, allMessage.get(position).getMsgId())
.start();
}
});
}