最初我使用gridview用一个项目启动我的屏幕。点击该项目将带我到另一个屏幕,我输入图像和标题,然后按确定将进入网格视图更新的第一个屏幕,但即使在输入许多项目后,我仍然想要保留第一个项目。
尝试使用以下适配器,但它无法正常工作
public class CustomBaseAdapter extends BaseAdapter {
Context context;
List<RowItem> rowItems;
public CustomBaseAdapter(Context context, List<RowItem> items) {
this.context = context;
this.rowItems = items;
}
/*private view holder class*/
private class ViewHolder {
ImageView imageView;
TextView txtTitle;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
LayoutInflater mInflater = (LayoutInflater)
context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.addcompany_layout,null);
holder = new ViewHolder();
holder.txtTitle = (TextView) convertView.findViewById(R.id.location);
holder.imageView = (ImageView) convertView.findViewById(R.id.addbutton);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
if(position!=0){
RowItem rowItem = rowItems.get(position);
Toast.makeText(context, rowItem.getCompany_name(), Toast.LENGTH_SHORT).show();
holder.txtTitle.setText(rowItem.getCompany_name());
holder.imageView.setImageBitmap(BitmapFactory
.decodeFile(rowItem.getImagepath()));
}
return convertView;
}
@Override
public int getItemViewType(int position) {
return super.getItemViewType(position);
}
@Override
public int getCount() {
return rowItems.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
}
答案 0 :(得分:0)
根据您发布的内容,我没有看到任何更新适配器的方法。所以它归结为你传递给构造函数的东西。
如果您不想在适配器类之外管理它,可以在构造函数中创建第一个RowItem,将其放在第一个位置,然后填充其余部分。
public CustomBaseAdapter(Context context, List<RowItem> items) {
this.context = context;
// Construct your first item
// Alternatively you can pass it as a param
this.firstItem = new RowItem();
this.rowItems = items;
this.rowItems.add(0, firstItem);
}