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><item android:drawable="@drawable/2" android:duration="100"></item><item android:drawable="@drawable/3" android:duration="100"></item><item android:drawable="@drawable/4" android:duration="100"></item><item android:drawable="@drawable/5" android:duration="100"></item><item android:drawable="@drawable/6" android:duration="100"></item><item android:drawable="@drawable/7" android:duration="100"></item><item android:drawable="@drawable/8" android:duration="100"></item></animation-list>
<set><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"></scale></set>