package com.liuguilin.lovewallpaper.adapter; /* * 项目名: LoveWallpaper * 包名: com.liuguilin.lovewallpaper.adapter * 文件名: SettingAdapter * 创建者: LGL * 创建时间: 2017/1/16 17:42 * 描述: 设置适配器 */ import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.liuguilin.lovewallpaper.R; import com.liuguilin.lovewallpaper.entity.Constants; import java.util.List; public class SettingAdapter extends BaseAdapter { public Context mContext; private LayoutInflater inflater; private List<String> mList; public SettingAdapter(Context mContext, List<String> mList) { this.mContext = mContext; this.mList = mList; inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { return mList.size(); } @Override public Object getItem(int i) { return mList.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder viewHolder = null; if (view == null) { viewHolder = new ViewHolder(); view = inflater.inflate(R.layout.fragment_setting_item, null); viewHolder.iv_setting_icon = (ImageView) view.findViewById(R.id.iv_setting_icon); viewHolder.tv_setting_content = (TextView) view.findViewById(R.id.tv_setting_content); view.setTag(viewHolder); } else { viewHolder = (ViewHolder) view.getTag(); } viewHolder.iv_setting_icon.setBackgroundResource(Constants.SETTING_ICON[i]); viewHolder.tv_setting_content.setText(mList.get(i)); return view; } class ViewHolder { private ImageView iv_setting_icon; private TextView tv_setting_content; } //更新单个item public void updataOneItemView(int position, ListView listView,String text) { int visibleFirstPosi = listView.getFirstVisiblePosition(); int visibleLastPosi = listView.getLastVisiblePosition(); if (position >= visibleFirstPosi && position <= visibleLastPosi) { View view = listView.getChildAt(position - visibleFirstPosi); ViewHolder holder = (ViewHolder) view.getTag(); holder.tv_setting_content.setText(text); mList.set(position, text); } else { mList.set(position, text); } } }