16、屏幕方向变化时(横屏->竖屏,或反过来),ListView里发生变化的内容丢失,状态回到开始时的样子。 当屏幕方向发生变化时,android会重建整个Activity以便你构造更适合某个方向的UI。为了避免这种情况,在AndroidManifest.xml里的那个Activity声明上增加android:configChanges="orientation" 即可。详见参考链接。 17、各手机平台仿真器/模拟器的下载链接。 18、AlertDialog#show()方法是不会阻塞当前线程的。 19、让不同Activity之间进行通信,例如一个TabActivity里有多个Activity,它们之间需要传递一些消息。 可使用BroadcastReceiver机制。 参考链接。要注意的是,tab还未启动时是无法接收到消息的,所以要在tabhost所在的activity里也接收消息,当tab启动时传给它。 20、Android SDK里的style和theme文档 见此链接。 21、Tab的样式。 Android的tab样式问题比较多,不同版本的样式也不一样。这里有一个自定义样式的参考链接。 22、在ListView里使用单选/复选按钮。 问题很多,这个链接看起来解决了问题,但在我的环境里没试验成功。 Update: 以复选按钮为例,本质的问题在于ListView里的复选按钮不知道对应的model是哪个,需要事先用CheckBox#setTag(myModelObject)关联,onclick事件里用getTag()改变其选中状态。建议看这篇文档。 23、strings.xml里定义的字符串里增加参数。 在字符串里用“%1$s”、“%2$d”表示参数的序号和类型,然后用String.format()方法赋值。参考这个链接。 24、嵌入条码/二维码扫描功能 使用zxing。方法是在手机上先安装BarcodeScanner.apk,然后在程序里调用其提供的Activity,该Activity会返回扫描结果。 参考链接 25、改变ListView里每个Row的背景颜色 直接在getView()里写view.setBackgroundColor()是不行的。正确的方法是先在drawable目录里建一个xml文件,自己起名如my_row.xml,内容如下(关键是第一个和第四个<item>): <?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:state_selected="true" android:drawable="@android:color/transparent" /> <item android:state_selected="true" android:drawable="@android:color/transparent" /> <item android:state_pressed="true" android:state_selected="false" android:drawable="@android:color/transparent" /> <item android:state_selected="false" android:drawable="@color/solid_red" /></selector>
然后在getView()里这样写就可以了: if (item.getStopId().equals(User.stopId)) { view.setBackgroundResource(R.drawable.my_row);} else { view.setBackgroundResource(android.R.drawable.list_selector_background);}
|