繁体   English   中英

游标适配器和多列Android

[英]Cursor Adapter and Multiple Columns Android

我有一个listfragment,其中填充了一个simplecursoradapter。 但是,只有第一列被绑定到布局。 这是代码。

public class ContactList extends ListFragment

{
private ActivityDbAdapter mDbHelper;
private Long mRowId=Long.valueOf(1);
Activity mContext;


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) 
{
    mContext=getActivity();
    mDbHelper=new ActivityDbAdapter(mContext);
    mDbHelper.open();
    Cursor activity = mDbHelper.fetchContacts(mRowId);
    if (activity.moveToFirst())
    {


    String[] from = new String[]{ActivityDbAdapter.COLUMN_NAME_CONTACT1 ,
            ActivityDbAdapter.COLUMN_NAME_CONTACT2,ActivityDbAdapter.COLUMN_NAME_CONTACT3,
            ActivityDbAdapter.COLUMN_NAME_CONTACT4, ActivityDbAdapter.COLUMN_NAME_CONTACT5};



    int[] to = new int[]{R.id.contacts};

    SimpleCursorAdapter contacts = 
        new SimpleCursorAdapter(mContext, R.layout.activity_contact_row, activity, from, to);

    setListAdapter(contacts);
    }

    return inflater.inflate(R.layout.activity_contact_list, container, false);

}

}

...因此,这里只有Contact1显示在布局中。 或无论我第一列。 据我了解,我不必使用for循环来正确绑定所有列,但是看来您可以这样做吗? 除非我在这里缺少任何东西。 任何帮助,将不胜感激。

在您的ListFragment使用此方法,而不要使用旧方法。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) 
{
    mContext=getActivity();
    mDbHelper=new ActivityDbAdapter(mContext);

    mDbHelper.open();
    Cursor activity = mDbHelper.fetchContacts(mRowId);
    mDbHelper.close();

    String[] from = new String[]{ActivityDbAdapter.COLUMN_NAME_CONTACT1 ,
            ActivityDbAdapter.COLUMN_NAME_CONTACT2,ActivityDbAdapter.COLUMN_NAME_CONTACT3,
            ActivityDbAdapter.COLUMN_NAME_CONTACT4, ActivityDbAdapter.COLUMN_NAME_CONTACT5};


    int[] to = new int[]{R.id.contacts};

    SimpleCursorAdapter contacts = 
        new SimpleCursorAdapter(mContext, R.layout.activity_contact_row, activity, from, to);

    setListAdapter(contacts);

    return inflater.inflate(R.layout.activity_contact_list, container, false);

}

你只有一个项目( R.id.contacts您的阵列中) to ; 因此,仅一个视图用于/显示数据。 您还需要为其他视图添加ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM