Android開發常見問題總結_Android

來源:互聯網
上載者:User

本文總結分析了Android開發常見問題。分享給大家供大家參考,具體如下:

1. 在ui中使用scrollview之後,假如複寫activity的onkeydown或onkeyup事件,若果焦點在scrollview上,則這兩個事件是不觸發的,對於ontouch事件也是一樣。解決題目的方法是

scrollview.setOnKeyListener();

2. mediaplay在使用時,添加的一些事件諸如setOnCompletionListener等,沒有起到作用,不執行,原因是由於之前沒有設定資料來源,解決方案,在setDataSource之後再設定事件響應。

mediaplay在執行prepare時,拋出IllegalStateException 異常,可能是由於沒有初始化的mediaplay導致,解決方案可以先執行stop,然後再分析。

mediaplay在執行release後,最好進行置空操縱,如:

mediaplay = null

最好設定錯誤監聽setOnErrorListener,當發生錯誤時進行reset重設。由於有些錯誤是避免不了的,如error(-38,0),error(1,-2147483648)

3. 假如在頁面載入完成後,想使某一個控制項擷取預設焦點,調用requestFocus()後,假如不起作用,可以添加一句setFocusableInTouchMode(true),可能是由於進進應用時,不是通過鍵盤進往的,所以視覺上體現不到;

4. leaked window異常,是由於activity在封閉時,可能有dialog沒有封閉導致。情境:在非主線程拋出異常,直接退出activity,導致dialog沒有封閉。解決方案:在onDestroy中封閉dialog;分析你的非主線程是否有更改ui的代碼存在,這個修改方法要具體分析。

5. ProgressDialog改變旋轉的那個圖片

ProgressDialog.setIndeterminateDrawable(Drawable drawable),drawable用XML檔案寫,如下:

<?xml version="1.0" encoding="utf-8"?><animation-list    xmlns:android="http://schemas.android.com/apk/res/android"    android:oneshot="false">  <item android:drawable="@drawable/1" android:duration="100" />  <item android:drawable="@drawable/2" android:duration="100" />  <item android:drawable="@drawable/3" android:duration="100" />  <item android:drawable="@drawable/4" android:duration="100" />  <item android:drawable="@drawable/5" android:duration="100" />  <item android:drawable="@drawable/6" android:duration="100" />  <item android:drawable="@drawable/7" android:duration="100" />  <item android:drawable="@drawable/8" android:duration="100" /></animation-list>

6. linearlayout weight

子項目的layout_weight 屬性,值越小,所佔得比重越大,分為兩種情況:

舉例說明:

假如水平顯示,子項目的layout_width屬性值為fill_parent,則layout_weight屬性值越小,佔得顯示比例越大,layout_width屬性值為wrap_content,則layout_weight屬性值越小,顯示比例越小。

7. 假如activity的啟動模式設定成singleTask或singleIntance,那麼其onActivityResult將失往作用,除非再配置屬性

android:clearTaskOnLaunch="true"

8.android:fillAfter="true"不起作用

解決方案有:

①.通過java代碼設定:

leftAnim.setFillAfter(true);

②.配置xml,寫在set標籤中,如:

<set android:fillAfter="true"  xmlns:android="http://schemas.android.com/apk/res/android">  <scale     android:interpolator=           "@android:anim/accelerate_decelerate_interpolator"     android:fromXScale="0.0"     android:toXScale="0.0"     android:fromYScale="1.0"     android:toYScale="1.0"     android:pivotX="100%"     android:pivotY="100%"     android:duration="10" /></set>

android做動畫時留意點:

①.要在代碼中調用Imageview的setBackgroundResource方法,假如直接在XML布局檔案中設定其src屬性當觸發動畫時會FC。

②.在動畫start()之前要先stop(),不然在第一次動畫之後會停在最後一幀,這樣動畫就只會觸發一次。

③.最後一點是SDK中提到的,不要在onCreate中調用start,由於AnimationDrawable還沒有完全跟Window相關聯,假如想要介面顯示時就開始動畫的話,可以在onWindowFoucsChanged()中調用start()。

9. 在通過MediaPlayer播放音樂時,網上都說假如在activity中播放,在activity退出時,音樂播放會停止,這個純粹是他媽的扯淡,我以前還對此堅信不疑。MediaPlayer播放音樂,會重新啟動一個service進行播放,假如你的activity或service已經destory了,是不影響播放service的生命週期的。

更多關於Android相關內容感興趣的讀者可查看本站專題:《Android視圖View技巧總結》、《Android編程之activity操作技巧總結》、《Android操作SQLite資料庫技巧總結》、《Android操作json格式資料技巧總結》、《Android資料庫操作技巧總結》、《Android檔案操作技巧匯總》、《Android編程開發之SD卡操作方法匯總》、《Android開發入門與進階教程》、《Android資源操作技巧匯總》及《Android控制項用法總結》

希望本文所述對大家Android程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.