1.适配器中的主要逻辑:
import android.content.Context;
import android.support.v4.content.ContextCompat;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.Switch;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.tokenloan.lightwallet.R;
import com.tokenloan.lightwallet.bean.model.CheckBean;
import com.tokenloan.lightwallet.utils.ToastUtil;
import com.tokenloan.lightwallet.view.property.bean.Assets;
import com.tokenloan.lightwallet.view.property.bean.TokenBean;
import com.tokenloan.lightwallet.view.property.bean.TokenIconBean;
import java.util.List;
/**
* 搜索Token
* Created by sgf on 2018/8/10.
*/
public class SearchTokenAdapter extends BaseAdapter {
// private List<CheckBean> list;
private List<TokenBean> list;
private TokenIconBean.DataBean data;
private LayoutInflater inflater;
private Context context;
public SearchTokenAdapter(Context context) {
inflater = LayoutInflater.from(context);
}
public Context getContext() {
return context;
}
public void setContext(Context context) {
this.context = context;
notifyDataSetChanged();
}
public void setData(List<TokenBean> lists) {
list = lists;
notifyDataSetChanged();
}
public void setDataIcon(TokenIconBean.DataBean datas) {
data = datas;
notifyDataSetChanged();
}
@Override
public int getCount() {
if (list == null) {
return 0;
}
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
SearchTokenAdapter.ViewHolder viewHolder = null;
if (convertView == null) {
convertView = inflater.inflate(R.layout.search_token_item, null);
viewHolder = new ViewHolder();
viewHolder.iv_addTokenIcon = convertView.findViewById(R.id.iv_addTokenIcon);
viewHolder.tv_addTokenName = convertView.findViewById(R.id.tv_addTokenName);
viewHolder.tv_addTokenContent = convertView.findViewById(R.id.tv_addTokenContent);
viewHolder.tv_addTokenAddress = convertView.findViewById(R.id.tv_addTokenAddress);
viewHolder.bt_searchAdd = convertView.findViewById(R.id.bt_searchAdd);
convertView.setTag(viewHolder);
} else {
viewHolder = (SearchTokenAdapter.ViewHolder) convertView.getTag();
}
String currency = list.get(position).getCurrency();
viewHolder.tv_addTokenName.setText(currency);
viewHolder.tv_addTokenContent.setText(list.get(position).getContent());
viewHolder.tv_addTokenAddress.setText(list.get(position).getAddress());
if(currency.equalsIgnoreCase("TL")){
viewHolder.iv_addTokenIcon.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.tl));
}else if(currency.equalsIgnoreCase("ETH")){
viewHolder.iv_addTokenIcon.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.eth));
}else if(currency.equalsIgnoreCase("USDT")){
viewHolder.iv_addTokenIcon.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.usdt));
}else if(currency.equalsIgnoreCase("DAI")){
viewHolder.iv_addTokenIcon.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.dai));
}
// String icon = data.getIcon();
// if(currency.equalsIgnoreCase("TL")&& !TextUtils.isEmpty(icon)){
// Glide.with(context).load(icon).into(viewHolder.iv_addTokenIcon);
// }else {
// viewHolder.iv_addTokenIcon.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.tl));
// }
// if(currency.equalsIgnoreCase("ETH")&& !TextUtils.isEmpty(icon)){
// Glide.with(context).load(icon).into(viewHolder.iv_addTokenIcon);
// }else {
// viewHolder.iv_addTokenIcon.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.eth));
// }
//
// if(currency.equalsIgnoreCase("USDT")&& !TextUtils.isEmpty(icon)){
// Glide.with(context).load(icon).into(viewHolder.iv_addTokenIcon);
// }else {
// viewHolder.iv_addTokenIcon.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.usdt));
// }
final ViewHolder finalViewHolder = viewHolder;
String status = list.get(position).isChecked()?"已添加":"添加";
finalViewHolder.bt_searchAdd.setText(status);
viewHolder.bt_searchAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ToastUtil.showShort(context,"ADD " + position);
finalViewHolder.bt_searchAdd.setText("已添加");
list.get(position).setChecked(true);
}
});
// viewHolder.tv_addTokenContent.setText(list.get(position));
// viewHolder.tv_addTokenAddress.setText(list.get(position));
// viewHolder.switch_addToken.setChecked(isSelected.get(position));
// final int pos = position; //pos必须声明为final
// viewHolder.bt_searchAdd.setTag(position);
// viewHolder.bt_searchAdd.setOnCheckedChangeListener(null);
// viewHolder.bt_searchAdd.setChecked(list.get(position).isChecked());
// viewHolder.bt_searchAdd.setOnCheckedChangeListener(onCheckedChangeListener);
return convertView;
}
public static class ViewHolder {
public ImageView iv_addTokenIcon;//icon
public TextView tv_addTokenName;//token名称
public TextView tv_addTokenContent;//token内容
public TextView tv_addTokenAddress;//token地址
public Button bt_searchAdd;//添加
}
}
2.实体类:
/**
* Token数据
*/
public class TokenBean {
private String picture;
private String currency;
private String content;
private String address;
private boolean isChecked;
public boolean isChecked() {
return isChecked;
}
public void setChecked(boolean checked) {
isChecked = checked;
}
public TokenBean() {
}
public TokenBean(String picture, String currency, String content, String address) {
this.picture = picture;
this.currency = currency;
this.content = content;
this.address = address;
}
public TokenBean(String picture, String currency, String content, String address, boolean isChecked) {
this.picture = picture;
this.currency = currency;
this.content = content;
this.address = address;
this.isChecked = isChecked;
}
public String getPicture() {
return picture;
}
public void setPicture(String picture) {
this.picture = picture;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "TokenBean{" +
"picture=" + picture +
", currency='" + currency + '\'' +
", content='" + content + '\'' +
", address='" + address + '\'' +
'}';
}
}