SimpleCursorTreeAdapter构造函数未在Android 2.2上调用

时间:2012-07-17 10:50:39

标签: android simplecursoradapter

在Android 2.2上,mContext = context(或我放在那里的任何其他内容)永远不会被调用。它适用于2.3+。 这是一个已知的问题吗?有解决方法吗?

public class ExpListCursorAdapter extends SimpleCursorTreeAdapter {
    Context mContext;

    public ExpListCursorAdapter(Context context, Cursor cursor,
            int groupLayout, String[] groupFrom, int[] groupTo,
            int childLayout, String[] childFrom, int[] childTo) {
         super(context, cursor, groupLayout, groupFrom, groupTo, childLayout, childFrom,
            childTo);
        mContext=context;
}

    @Override
    protected Cursor getChildrenCursor(Cursor groupCursor) {
        int id=groupCursor.getInt(DatabasePazienti.ROWID);
        DatabaseTests mDbTests=new DatabaseTests(mContext);
        mDbTests.open();

        Cursor cursor=mDbTests.fetchPatientTests(id);
        return cursor;
    }

2 个答案:

答案 0 :(得分:0)

我确认这是一个Android 2.2错误(即使我找不到它的任何参考)。我在我的软件包中包含了Android 2.3.3中的SimpleCursorTreeAdapter.java,现在它可以工作了。

答案 1 :(得分:0)

API 2.2中SimpleCursorTreeAdapter的实现与API 2.3不同。 正如你在这里看到的那样:

API 2.2

  

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/widget/SimpleCursorTreeAdapter.java

API 2.3

  

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.3_r1/android/widget/SimpleCursorTreeAdapter.java

使用API​​ 2.2时,由于构造函数中调用的方法序列,因此永远不会调用mContext = context