【问题标题】:Android Notepad Uri ExplanationAndroid记事本Uri解释
【发布时间】:2010-12-19 00:28:03
【问题描述】:

在 android Notes 演示中,它接受 URI:

    sUriMatcher.addURI(NotePad.AUTHORITY, "notes", NOTES);
    sUriMatcher.addURI(NotePad.AUTHORITY, "notes/#", NOTE_ID);

notes 和 notes/# 的区别在于 notes/# 返回 ID 与 # 匹配的便笺。

但是,用于从内容提供者获取数据的 managedQuery() 方法具有以下参数:

Parameters
uri The URI of the content provider to query.
projection  List of columns to return.
selection   SQL WHERE clause.
selectionArgs   The arguments to selection, if any ?s are pesent
sortOrder   SQL ORDER BY clause.

那么,设计决定是否为此提供 URI,而不仅仅是使用选择参数?还是只是口味问题?

谢谢。

【问题讨论】:

标签: sql android sqlite uri


【解决方案1】:

我认为这样您就可以进行更复杂的查找,而不必使您的选择和参数复杂化。例如,在我的项目中,我有多个表,但使用相同的选择和参数。过滤内容。通过使用我没有解释查询的 URI,我可以打开 URI。一开始可能是个人喜好。但在更复杂的场景中,您会欣赏 URI。您也可以使用 * 来匹配字符串,与使用 # 的方式相同。

【讨论】:

    【解决方案2】:

    我认为这主要是品味问题。恕我直言,将 id 放在 Uri 中会更干净一些,因为您可以使 id 不透明,而不是要求客户端知道它实际上代表特定的行 id。例如,您可以传递查找键(如在联系人 API 中)而不是特定的行 ID。

    【讨论】:

    • 我想到了这一点,我同意它会更干净一些,但是为了让用户理解他们正在返回的光标,他们需要知道一点(也就是哪些列有)关于底层结构。
    猜你喜欢
    • 2011-10-09
    • 2014-03-24
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    相关资源
    最近更新 更多