2017-01-25 6 views
0

最初は、gridviewで画面を1つの項目で開始します。アイテムをクリックすると、画像とタイトルを入力してOKを押すと、グリッドビューが更新される最初の画面が表示されますが、多くのアイテムを入力しても最初のアイテムは消えてしまいます。Androidグリッド定数の最初の項目を持つ

は、以下のアダプタと試みたが、それはあなたが私はあなたのアダプタを更新するための任意の方法が表示されない投稿した内容から

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

が機能していません。だから、あなたはコンストラクタに渡すものまで沸騰します。

アダプタークラスの外でこれを管理したくない場合は、コンストラクターで最初の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); 
} 
関連する問題