2016-09-27 3 views
0

bindviewメソッドの行レイアウトにvisibilityの方法をCursorAdapterクラスに設定することができません。アンドロイドのカーソルアダプター

コード

@Override 
public void bindView(View view, Context context, Cursor cursor) { 
    // Gets handles to individual view resources 
    final ViewHolder holder = (ViewHolder) view.getTag();   
    Contact contact = new ContactDatabase(context).getContact(cursor, "_id"); 
    String body = cursor.getString(cursor.getColumnIndexOrThrow("follower")); 
    Log.d("Body", "" + body); 
    if (body == null) { 
     holder.rowlayout.setVisibility(View.GONE) 
    } else { 
     holder.rowlayout.setVisibility(View.VISIBLE); 
     holder.text1.setText(contact .getName()); 
    } 
} 

を(私は空のスペースを取得しています)私を助けてください。

+0

は(bindViewのあなたの完全なコードを表示) –

答えて

0

行項目を非表示にすることはお勧めできません。 ベストプラクティスでは、フィルタリングを実装し、そのデータがアダプタでバインドされないようにします。

あなたが実装された方法でデータをフィルタリングすることができます...

class ContactListAdapter extends CursorAdapter implements Filterable { 
     public ContactListAdapter(Context context, Cursor c) { 
      super(context, c); 
      mContent = context.getContentResolver(); 
     } 

     @Override 
     public View newView(Context context, Cursor cursor, ViewGroup parent) { 
      final LayoutInflater inflater = LayoutInflater.from(context); 
      final TextView view = (TextView) inflater.inflate(
        android.R.layout.simple_dropdown_item_1line, parent, false); 
      view.setText(cursor.getString(COLUMN_DISPLAY_NAME)); 
      return view; 
     } 

     @Override 
     public void bindView(View view, Context context, Cursor cursor) { 
      ((TextView) view).setText(cursor.getString(COLUMN_DISPLAY_NAME)); 
     } 

     @Override 
     public String convertToString(Cursor cursor) { 
      return cursor.getString(COLUMN_DISPLAY_NAME); 
     } 

     @Override 
     public Cursor runQueryOnBackgroundThread(CharSequence constraint) { 
      FilterQueryProvider filter = getFilterQueryProvider(); 
      if (filter != null) { 
       return filter.runQuery(constraint); 
      } 

      Uri uri = Uri.withAppendedPath(
        Contacts.CONTENT_FILTER_URI, 
        Uri.encode(constraint.toString())); 
      return mContent.query(uri, CONTACT_PROJECTION, null, null, null); 
     } 

     private ContentResolver mContent; 
    } 

    public static final String[] CONTACT_PROJECTION = new String[] { 
     Contacts._ID, 
     Contacts.DISPLAY_NAME 
    }; 

    private static final int COLUMN_DISPLAY_NAME = 1; 
} 

など。

@Override 
public Cursor runQueryOnBackgroundThread(CharSequence constraint) { 
     FilterQueryProvider filter = getFilterQueryProvider(); 
     if (filter != null) { 
      return filter.runQuery(constraint); 
     } 

     Uri uri = Uri.withAppendedPath(
      Contacts.CONTENT_FILTER_URI, 
      Uri.encode(constraint.toString())); 
     return mContent.query(uri, CONTACT_PROJECTION, null, null, null); 
} 

コーディングハッピー...

関連する問題