android 應用程序開發小結

新手問題多多 -_-|| embarrassment

權限問題

使用某些 api 進行操作時需要申請特定的權限的(最典型的就是寫sdcard)。這類 api 一般來 sdk 文檔中會有說明的,看的時候看仔細點,並且養成 catch 異常,並且把異常輸出到 log 的好習慣。這樣如果是因爲權限問題失敗的話,可以馬上從 logcat 中看到類似 "Permission Denied" 輸出。申請特定權限,編輯 AndroidManifest? .xml 文件。點擊 Premission 標籤頁,add Use Premission ,然後在下拉列表中選擇對應的權限就可以了。當然你可以手動在 xml 中添加,但是使用 eclipse 帶的編輯器比較方便。添加了權限後,會在安裝 apk 的時候有提示。

切換 activity 的問題

一般來說一個應該是由多個 activity 組成的。這個時候就需要涉及到 activity 之間的切換了。一般來說啓動別的 activity 可以使用如下代碼:

// 一般啓動使用 Intent,Intent 的第一參數一般是填發起啓動 activity 的 activity。
// 第二個參數就是你要啓動的 activity 的 class。
// 後面那個可以設置一些啓動參數,具體的可以去看 sdk docs
Intent editIntent = new Intent(this, EditGestureActivity.class);
editIntent.setFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK);

// 這個可以用於 activity 之間交換數據
gestureName = (String)(item.get("ivText"));
if (gestureName != null)
editIntent.putExtra("gestureName", gestureName);

// 然後通過 startActivity 啓動 activity
try {
        startActivity(editIntent);
} catch (ActivityNotFoundException e) {
        Log.d("Mylog", "Error: " + e.toString());
}


不過這個需要注意2點:

  • 如果你是啓動你應用中的一個非主應用,那麼你需要手動在 AndroidManifest? .xml 文件的 標籤上添加你的 activity 的標識,否則 startActivity 是無法啓動你指定的 activity 的:
<application android:icon="@drawable/icon" android:label="@string/app_name">
... ...

// 你要啓動的 activity 類
<activity android:name=".EditGestureActivity"
android:label="@string/app_name">
</activity>

</application>


  • 如果你是啓動別的應用程序的主應用,就是你應用程序啓動時候的第一個 activity,在 xml 文件的 標籤中有這樣的標識的:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>


那在上面的 Intent 設置中還需要加上 editIntent.addCategory(android.content.Intent.CATEGORY_LAUNCHER); 這樣的代碼才行。這樣就可以啓動別的應用程序了。
發佈了37 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章