首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android损坏的XML解析示例

Android损坏的XML解析示例
EN

Stack Overflow用户
提问于 2011-08-21 23:47:15
回答 4查看 1.8K关注 0票数 4

从APIv.11发布开始,Android SDK就包含了also referenced from the official site的XmlAdapter示例。这个示例现在至少出现在3个文件夹中: android-11,android-12和android-13。而且它已经坏了。主要的(但不仅仅是)问题是它声明了一个无处可寻的android.content.XmlDocumentProvider提供程序,包括https://android.googlesource.com

Adapters.java中也存在编译问题

代码语言:javascript
复制
mContext cannot be resolved to a variable   line 973
mFrom cannot be resolved to a variable  line 938
mTo cannot be resolved to a variable    line 937
mTo cannot be resolved to a variable    line 939

android-developers上与此相关的问题很少,但没有答案。有没有人设法跟踪这个难以捉摸的XmlDocumentProvider并使样本工作?最重要的是--亲爱的Android团队,你能修复这个样本或者把它拉出来吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-01 03:16:22

缺失的XmlDocumentProvider现在随SDK14中的示例一起发布,该项目将针对SDK8及更高版本进行编译。但是,要成功运行它,您必须修改清单以指向正确的提供者:

代码语言:javascript
复制
<provider android:name="com.example.android.xmladapters.XmlDocumentProvider"
       android:authorities="xmldocument" />
票数 2
EN

Stack Overflow用户

发布于 2012-09-19 19:54:02

除了杰夫·吉尔费尔特指出的修复AndroidManifest.xml之外,您还可以更改Adapters.java (显示错误的文件)中的代码XmlCursorAdapter类,如下所示:

代码语言:javascript
复制
/**
 * Implementation of a Cursor adapter defined in XML. This class is a thin wrapper
 * of a SimpleCursorAdapter. The main difference is the ability to handle CursorBinders.
 */
private static class XmlCursorAdapter extends SimpleCursorAdapter implements ManagedAdapter {
    private Context mContext;
    private String mUri;
    private final String mSelection;
    private final String[] mSelectionArgs;
    private final String mSortOrder;
    private final int[] mTo;
    private final String[] mFrom;
    private final String[] mColumns;
    private final CursorBinder[] mBinders;
    private AsyncTask<Void,Void,Cursor> mLoadTask;



    XmlCursorAdapter(Context context, int layout, String uri, String[] from, int[] to,
            String selection, String[] selectionArgs, String sortOrder,
            HashMap<String, CursorBinder> binders) {

        super(context, layout, null, from, to);
        mContext = context;
        mUri = uri;
        mFrom = from;
        mTo = to;
        mSelection = selection;
        mSelectionArgs = selectionArgs;
        mSortOrder = sortOrder;
        mColumns = new String[from.length + 1];
        // This is mandatory in CursorAdapter
        mColumns[0] = "_id";
        System.arraycopy(from, 0, mColumns, 1, from.length);

        CursorBinder basic = new StringBinder(context, new IdentityTransformation(context));
        final int count = from.length;
        mBinders = new CursorBinder[count];

        for (int i = 0; i < count; i++) {
            CursorBinder binder = binders.get(from[i]);
            if (binder == null) binder = basic;
            mBinders[i] = binder;
        }
    }

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        final int count = mTo.length;
        final int[] to = mTo;
        final CursorBinder[] binders = mBinders;

        for (int i = 0; i < count; i++) {
            final View v = view.findViewById(to[i]);
            if (v != null) {
                binders[i].bind(v, cursor, cursor.getColumnIndex(mFrom[i]));
            }
        }
    }
    ......
    ......
    ......

我从这里找到的代码中得到了答案:

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/4.0.1_r1/com/example/android/xmladapters/Adapters.java?av=f

票数 1
EN

Stack Overflow用户

发布于 2011-08-24 09:00:50

我从罗曼·盖伊那里得到了答案。我昨天打开的标签现在有一个状态标签: FutureRelease,我想这意味着他们将在下一个版本中修复它。有关添加的参考资料,请单击此处的链接,链接到有关android-developers的讨论

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7139299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档