我为列表视图使用了基础适配器,并且在滚动时,位置发生了变化。,如何克服这个,这是我的基础适配器类。
Hello,
我将 Base 适配器用于列表视图,并且在滚动时,位置
变化。,如何克服这个,这是我的基础适配器类。
public class MyCustomBaseAdapter extends BaseAdapter {
MyCustomBaseAdapter custom;
private OnClickListener onCheckClick;
private OnCheckedChangeListener OnTextClick;
Context context;
ViewHolder holder;
public void setOnClickListeners(OnClickListener
onCheckClick) {
// TODO Auto-generated method stub
this.onCheckClick = onCheckClick;
}
public void setOnCheckedChangeListener
(OnCheckedChangeListener OnTextClick) {
// TODO Auto-generated method stub
this.OnTextClick = OnTextClick;
}
private static ArrayList<SearchResults> searchArrayList;
private LayoutInflater mInflater;
public MyCustomBaseAdapter(Context context,
ArrayList<SearchResults> results) {
this.context = context;
searchArrayList = results;
mInflater = LayoutInflater.from(context);
}
public int getCount() {
return searchArrayList.size();
}
public Object getItem(int position) {
return searchArrayList.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView,
ViewGroup parent) {
SearchResults planet = (SearchResults) this.getItem(
position );
if (convertView == null) {
convertView = mInflater.inflate
(R.layout.custom_row_view, null);
holder = new ViewHolder();
holder.txtName = (TextView)
convertView.findViewById(R.id.mobileNumber);
holder.txtCityState = (TextView)
convertView.findViewById(R.id.messageContent);
holder.id_txtView = (TextView)
convertView.findViewById(R.id.id_textView);
holder.checkBox = (CheckBox)
convertView.findViewById(R.id.checkBox1);
holder.datetime = (TextView)
convertView.findViewById(R.id.date_time);
holder.type = (TextView) convertView.findViewById
(R.id.type);
holder.custom_layout = (LinearLayout)
convertView.findViewById(R.id.custom_layout);
holder.checkBox.setOnClickListener(new
OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method
stub
((SMS)context).function(position);
}
});
holder.checkBox .setTag(Integer.valueOf(position));
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.txtName.setText(searchArrayList.get
(position).getName());
holder.txtCityState.setText(searchArrayList.get
(position).getCityState());
holder.id_txtView.setText(searchArrayList.get
(position).getPhone());
holder.datetime.setText(searchArrayList.get
(position).getDatetime());
//holder.type.setText(searchArrayList.get
(position).getType());
holder.checkBox .setTag(Integer.valueOf(position));
//(2).This line is for avoiding checkbox selection for
other checkboxess
/*holder.checkBox.setChecked(planet.isChecked() );*/
holder.checkBox.setOnCheckedChangeListener
(OnTextClick);
holder.checkBox.setChecked(searchArrayList.get
(position).isSelected());
return convertView;
}
static class ViewHolder {
TextView txtName;
TextView txtCityState;
TextView id_txtView;
CheckBox checkBox;
TextView datetime;
TextView type;
LinearLayout custom_layout;
LinearLayout main_layout;
TextView empty_txt_msg;
}
Integer[] imgid = {
R.drawable.ic_launcher,
R.drawable.ic_launcher,
};
}
请帮助我克服这一点。