android在一个列表项中从游标删除多行

android在一个列表项中从游标删除多行,android,listview,simplecursoradapter,Android,Listview,Simplecursoradapter,我有两个通过密钥连接的数据库: Questions ------------------- _id text 1 Question 1 2 Questions 2 Answers ------------------- _id text answered question_id 1 Yes 200 1 2 No 100 1 3 Yes 30

我有两个通过密钥连接的数据库:

Questions
-------------------
_id    text
1      Question 1
2      Questions 2

Answers
-------------------
_id    text    answered     question_id
1      Yes     200          1
2      No      100          1
3      Yes     30           2
4      No      260          2
我可以用SimpleCorsorAdapter完美地调用数据。但是,我想将所有问题和答案放在列表视图中,其中一个列表项如下所示:

Question 1
Yes: 200
No: 100
____________

Question 2
Yes: 30
No: 260
____________
我该怎么做?我所做的最好的事情是:

Question 1
Yes: 200
____________

Question 1
No: 100
____________

Question 2
Yes: 30
____________

Question 2
No: 230
你知道怎么做吗?我是否需要两个游标(一个用于循环问题数据库,然后另一个用于循环第一个游标的问题id的答案),或者我可以用一个游标实现这一点?我还考虑过使用TableLayout,但未能正确插入一行


我希望有人能给我一些建议。

您可以参考此代码

public class CustomAdapter extends BaseAdapter {

        private Context mContext;
        private Cursor mCursor;

        // State of the row that needs to show separator
        private static final int SECTIONED_STATE = 1;
        // State of the row that need not show separator
        private static final int REGULAR_STATE = 2;
        // Cache row states based on positions
        private int[] mRowStates;

        public CustomAdapter(Context context, Cursor cursor) {
            mContext = context;
            mCursor = cursor;
            mRowStates = new int[getCount()];
        }

        @Override
        public int getCount() {
            return mCursor.getCount();
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            View view;
            boolean showSeparator = false;

            mCursor.moveToPosition(position);

            if (convertView == null) {
                LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                view = inflater.inflate(R.layout.contact_item, null);
            }
            else {
                view = convertView;
            }

            // Set contact name and number
            TextView contactNameView = (TextView) view.findViewById(R.id.contact_name);
            TextView phoneNumberView = (TextView) view.findViewById(R.id.phone_number);

            String name = mCursor.getString( mCursor.getColumnIndex(mProjection[0]) );
            String number = mCursor.getString( mCursor.getColumnIndex(mProjection[1]) );

            contactNameView.setText( name );
            phoneNumberView.setText( number );


            // Show separator ?

            switch (mRowStates[position]) {

                case SECTIONED_STATE:
                    showSeparator = true;
                    break;

                case REGULAR_STATE:
                    showSeparator = false;
                    break;

                default:

                    if (position == 0) {
                        showSeparator = true;
                    }
                    else {
                        mCursor.moveToPosition(position - 1);

                        String previousName = mCursor.getString(mCursor.getColumnIndex(mProjection[0]));
                        char[] previousNameArray = previousName.toCharArray();
                        char[] nameArray = name.toCharArray();

                        if (nameArray[0] != previousNameArray[0]) {
                            showSeparator = true;
                        }

                        mCursor.moveToPosition(position);
                    }

                    // Cache it
                    mRowStates[position] = showSeparator ? SECTIONED_STATE : REGULAR_STATE;

                    break;
            }

            TextView separatorView = (TextView) view.findViewById(R.id.separator);

            if (showSeparator) {
                separatorView.setText(name.toCharArray(), 0, 1);
                separatorView.setVisibility(View.VISIBLE);
            }
            else {
                view.findViewById(R.id.separator).setVisibility(View.GONE);
            }

            return view;
        }
    }

你可以参考是的,我已经加入了表格。那很好。我唯一的问题是布局。这对我帮助很大!