Android gridView with Constant第一项

时间:2017-01-25 08:55:12

标签: android gridview

最初我使用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;
    }
}

1 个答案:

答案 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);
}
相关问题