編輯:Android編程入門
項目中用到彈出Acitivity來獲得用戶輸入 所以用到 onActivityResult()方法接受用戶輸入
奇怪問題 startActivityForResult() 後直接調用 onActivityResult()
開發人員都知道,可以通過使用 startActivityForResult() 和 onActivityResult() 方法來傳遞或接收參數。
然而在項目中,還沒等到被調用的 Activity 返回,onActivityResult() 就被執行了。
找了很久,終於通過小道消息得知,這與 Activity 的加載模式(launchMode)有關,該屬性可以在 AndroidManifest.xml 中設置.
<activity android:name="SaveFileActivity" android:launchMode="singleTask" android:theme="@style/savefile"/>
原先將其設為 singleInstance,經測試,所有需要傳遞或接收的 Activity 不允許設置該屬性,或只能設為標准模式,否則系統將在 startActivityForResult() 後直接調用 onActivityResult()。 將上面XML中的singleTask去掉就可以了
調用startActivityForResult後,onActivityResult無響應的問題
兩個activity傳遞數據和返回數據時,請求方的onActivityResult始終無響應,通過debug調試模式也沒見調用該方法。查看了各種配置和程序代碼,均未發現有錯誤之處。後面找了很多資料,總算看到一個朋友說是調用startActivityForResult的參數問題,即調用時這樣:
startActivityForResult(intent, 0);
是第二個參數的問題,該參數必須大於0才能在返回值,並激活onActivityResult方法。
我最開始是用的一個activity默認的常量:RESULT_OK,跟蹤了代碼後發現,該常量的值為-1,當然沒法激活 onActivityResult方法了,隨後隨便修改為一個大於0的整數,程序即通跑成功。
startActivityForResult(intent, 1); //這樣就行了
今天我們的主要內容就是安卓的主要幾個基礎的布局方式。(主要布局如下:)1.線性布局(LinerLayout)2.相對布局(RelativeLayout)3.表格布局(Ta
今天總結下這段時間對於android studio的使用情況,也對剛使用的朋友一些參考,之前一直使用Eclipse
由於安卓應用很廣泛,在工業中也常有一些應用,比如可以用安卓來去工業中的一些數據進行實現的監測,顯示,同時可以做一些自動化控制,當然在這裡,我不是做這些自動化控制方面的研究
Android 廣播接收器(Broadcast Receivers)廣播接收器用於響應來之其他應用程序或者系統的廣播消息。這些消息有時被稱為事件或者意圖。