2012-06-12 2 views
1

У меня есть GridView и SimpleCursorAdapter для этого. Код выглядит следующим образомНастройка адаптера GridView Android

GridView myGridView = (GridView) this.freePassDialog.findViewById(R.id.gridview_buttons); 
    String[] column = { "name", "type" }; 
    int[] viewIds = new int[] { R.id.name_button, R.id.type_button }; 

    SimpleCursorAdapter myCursorAdapter = new SimpleCursorAdapter(this.parent, R.layout.row_free_pass_buttons, cursor, column, viewIds) { 

     /** 
     * {@inheritDoc} 
     * @see android.widget.SimpleCursorAdapter#bindView(android.view.View, android.content.Context, android.database.Cursor) 
     */ 
     @Override 
     public void bindView(View view, Context context, Cursor cursor) { 
      String freePassName = cursor.getString(cursor.getColumnIndex("name")); 
      String freePassType = cursor.getString(cursor.getColumnIndex("type")); 
      Button freePassBtn = (Button) view.findViewById(R.id.pass_name_button); 
      if (PaymentMethodType.SMARTCARD_PASS == PaymentMethodType.valueOf(freePassType)) { 
       freePassBtn.setVisibility(View.GONE); 
      } else { 
       freePassBtn.setVisibility(View.VISIBLE); 
      } 
      super.bindView(view, context, cursor); 
     } 
    }; 
    myGridView.setAdapter(myCursorAdapter); 

Курсор имеет 4 значения, но для меня, если я поставить некоторые регистраторы в метод BindView только первые значения приходит в несколько раз Может кто-нибудь мне помочь?

ответ

0

Я не вижу ничего плохого в коде, который вы отправили ... хотя каждый пример, который я могу найти такого рода, демонстрирует переопределение как newView, так и bindView. Может быть, вы должны реализовать переопределение newView?

@Override 
public View newView(Context context, Cursor cursor, ViewGroup parent) { 
    final LayoutInflater inflater = LayoutInflater.from(context); 
    View v = inflater.inflate(layout, parent, false); 
    return v; 
} 
+0

Не работает ... Я использую тот же код в другой части приложения и отлично работаю. В этом месте просто не видно всего содержимого курсора. – tinti

+0

Просто убедитесь, что я понимаю ... вы получаете только один элемент в gridview или получаете четыре копии одного элемента в gridview? – Barak

+0

Я получаю только первое значение от курсора, но во многих экземплярах ... более 4. – tinti

Смежные вопросы