2010-11-01 26 views
0

我正在編寫我的第一個Android應用程序,並且我一直在爲此掙扎了一個多星期。它似乎是所有Android應用程序的基礎,但我無法理解如何去做。例如,如果你在Android設置菜單中,你有一個清單,你點擊「關於」,它把你帶到了「關於」 Actvitiy等Android:你如何使用ListView來啓動一個Activity?

我需要我的應用程序要做到這一點爲好,我有5個我希望能夠選擇的菜單項並轉到所選項目的活動。

目前我有我的項目在string_array,但我沒有任何對應的字符串名稱與我想要轉到的活動名稱。

有人可以給我一些提示嗎?我真的在這裏苦苦掙扎,有些文件不堪重負。先謝謝你!

回答

1

請檢查在Settings應用程序中如何完成此操作。他們使用PreferenceActivity並將Intent嵌入到XML文件中。

 <com.android.settings.IconPreferenceScreen 
     android:title="@string/radio_controls_title" 
     settings:icon="@drawable/ic_settings_wireless"> 
     <intent 
      android:action="android.intent.action.MAIN" 
      android:targetPackage="com.android.settings" 
      android:targetClass="com.android.settings.WirelessSettings" /> 
     </com.android.settings.IconPreferenceScreen> 
+0

這是接近我想要的,但這個應用程序是基於preferencesActivity這應該是用於你的應用程序的偏好,而不是真的爲你的整個應用程序大聲笑 – SickNick 2010-11-04 04:46:37

2

你應該從閱讀Developer's Guide

的具體章節,你應該注意的是啓動的Application FundamentalsIntents

激活組件:當 他們有針對性的意圖

內容提供商激活通過來自 ContentResolver的請求。其他三個 組件 - 活動,服務和 廣播接收器 - 由 異步消息(稱爲意圖)激活。 意圖是一個Intent對象,其中 保存消息的內容。對於 活動和服務,它命名 正在請求的操作,並指定 要對其執行操作的數據的URI,其他事情包括在 之間。例如,它可能會向 傳達一個活動請求, 向用戶呈現圖像或讓用戶編輯一些文本 。對於廣播 接收者,意圖對象名稱 行動被宣佈。例如, 它可能會向感興趣的 通知相機按鈕已按下 。

存在用於 單獨的方法激活每種類型的組件:

  • 一個活動被啓動(或給定的新的東西做)通過使 意圖對象來 Context.startActivity()或 Activity.startActivityForResult()。 響應活動可以通過調用其getIntent() 方法來查看導致其啓動 的 初始意圖。 Android調用活動的onNewIntent()方法以傳遞任何 後續意圖。

    一項活動通常開始下一項活動。如果它預期從 開始的活動,它將調用 startActivityForResult()而不是 startActivity()。例如,如果它 開始一個活動,可讓用戶 選擇一張照片,則可能會預計爲 會返回所選照片。結果 返回Intent對象 傳遞給調用活動的 onActivityResult()方法。

  • 通過將Intent對象 傳遞給Context.startService(),可以啓動服務(或向正在進行的 服務提供新指令)。 Android 調用服務的onStart()方法 並將其傳遞給Intent對象。

    類似地,意圖可以被傳遞到Context.bindService()建立 的 調用組件和目標 服務之間正在進行的連接。該服務在onBind()調用中接收到 Intent對象。 (如果 服務尚未運行, bindService()可以選擇啓動 它。)例如,活動可能 建立與前面提到的這樣 ,它可以爲用戶提供的 音樂 播放服務的連接意味着用於控制回放的 (用戶界面)。活動 將調用bindService()設置 該連接,然後調用服務定義的方法 以影響 播放。

    稍後的部分,遠程過程調用,有關於將 綁定到服務的更多詳細信息。

  • 應用程序可以通過使意圖對象 在其變型的任何 像 Context.sendBroadcast(), Context.sendOrderedBroadcast(),和 Context.sendStickyBroadcast()方法發起的廣播。 Android通過調用他們的onReceive() 方法向所有感興趣的廣播 傳遞 的意圖。

更多關於意圖的信息,請參閱 另一篇文章,意圖和意圖 過濾器。

相關問題