所以我试图理解NotePad示例中的所有代码,但遇到一些困难:

首先,如何判断我们的项目从“ X”文件开始?像“索引”文件一样。

(我猜它是从NoteList页面开始的)在此NoteList页面中,我们使用getIntent()获取当前的意图,然后从中获取数据:但是:


哪个活动开始了笔记列表? (我认为没有,并且该项目中的所有活动都具有此getIntent()方法,因此在启动项目时会自动“发送”一个意图吗?)
我们将数据设置为新的intent变量,但是然后将数据像这样在光标中拉出:getIntent().getData():它是通过“引用”传递还是类似的传递?这样使用新的intent变量或getIntent()是相同的吗?


谢谢你的帮助 ;-)

>

// Gets the intent that started this Activity.
Intent intent = getIntent();

// If there is no data associated with the Intent, sets the data to the default URI, which
// accesses a list of notes.
if (intent.getData() == null) {
    intent.setData(NotePad.Notes.CONTENT_URI);
}

/*
 * Sets the callback for context menu activation for the ListView. The listener is set
 * to be this Activity. The effect is that context menus are enabled for items in the
 * ListView, and the context menu is handled by a method in NotesList.
 */
getListView().setOnCreateContextMenuListener(this);

/* Performs a managed query. The Activity handles closing and requerying the cursor
 * when needed.
 *
 * Please see the introductory note about performing provider operations on the UI thread.
 */
Cursor cursor = managedQuery(
    getIntent().getData(),            // Use the default content URI for the provider.
    PROJECTION,                       // Return the note ID and title for each note.
    null,                             // No where clause, return all records.
    null,                             // No where clause, therefore no where column values.
    NotePad.Notes.DEFAULT_SORT_ORDER  // Use the default sort order.
);

最佳答案

NoteList是应用程序的主要入口点。请参阅AndroidManifest.xml以查看启动器和主意图过滤器

 <activity android:name="NotesList" android:label="@string/title_notes_list">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <action android:name="android.intent.action.EDIT" />
            <action android:name="android.intent.action.PICK" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.dir/vnd.google.note" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.GET_CONTENT" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
        </intent-filter>
    </activity>


每个活动都由一个Intent启动。在Activity中调用getIntent()。该调用返回启动它的Intent对象。在记事本中,NoteID-(这是URI)从一个活动传递到Intent对象中作为参数。

关于android - 记事本问题:getIntent()和设置数据(通过引用?),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8654599/

10-09 06:10