- ):
- android:drawable="@android:color/transparent"/>
- android:drawable="@android:color/transparent"/>
然后在getView()里这样写就可以了:
if (item.getStopId().equals(User.stopId)) {
view.setBackgroundResource(R.drawable.my_row);
} else {
view.setBackgroundResource(android.R.drawable.list_selector_background);
}
参考链接1 参考链接2 参考链接3
26、在一个TableLayout里让Button宽度相同并占满表格宽度(想象一个由按钮组成的九宫格)
如果Button上的文字不长,按一般的方法就可以实现,例如这个链接。当Button上的文字很长,还是会使布局变乱,每个列的长度将不一样。解决方案是将按钮的layout_width设为0,layout_height设置为所需要的值,需要换行时将singleLine设置为false,最后将按钮的gravity设置为center。
27、对切换屏幕方向的处理
参考stackoverflow上的一个典型讨论。
当MyActivity位于一个TabActivity里时,我做了一些实验表明,TabActivity是否声明android:configChanges="keyboardHidden|orientation"与MyActivity无关,只有MyActivity做了上述声明后才会在改变方向时触发onConfigurationChanged()方法。
28、strings.xml里的字符串包含html格式标签时
需要用把html代码包起来。参考链接
29、在AlertDialog里用ListAdapter(如ArrayAdapter)时,文字不显示。
view的resourceId要用select_dialog_singlechoice而不能用simple_list_item_single_choice,否则文字颜色会与背景颜色相同而无法显示。参考链接
30、在android程序里使用第三方包的配置方法
参考这个链接成功。
31、定制tabhost的外观
这方面的需求和问题网上都很多,主要的解决方案有基于tabhost的和基于radiobutton的两大类,这里有几个可以参考的链接。链接1,链接2,链接3
32、取得当前屏幕方向
有好几个方法可以得到orientation值,但一些得到的值不对,例如getWindowManager().getDefaultDisplay().getOrientation()和getReqestedOrientation()。我实验下来比较靠谱的是getResources().getConfiguration().orientation。
33、Activity里第一个View是EditText的时候,软键盘自动弹出。
似乎只是一些机型会这样做。要阻止软键盘弹出,可在onCreate()里加一行代码。参考链接
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
34、Dialog的theme问题
使用Theme.Light主题时,Dialog显示不正常。相关讨论:链接1,链接2
35、注意区分CheckBox和RadioButton的OnClickListener和OnCheckedChangeListner
使用前者时,当在代码里执行myCheckBox.setChecked(true),不会触发事件,而后者会触发事件。
36、监视GPS开启/关闭事件
用GpsStatus.Listener不可靠(事件不上来),这个链接的方法是监视Settings里的事件:参考链接
37、仿真器横屏
快捷键ctrl+f11。有人提到ctrl+f12和numpad 7也可以,但我这里不起作用。
38、用JAXB生成KML对应的Java Code时会遇到一些问题,解决方法如下:
1)写一个binding文件如bindings.xjb放在与ogckml22.xsd同一目录,内容可参考这个链接(根据错误提示要删除几行)
2)在命令行里加-extension
3)在命令行里加-target 2.1(否则生成的java类的annotation带有jdk6不识别的关键字"required")
完整的命令行如下:
xjc -xmlschema -verbose -extension -b bindings.xjb -d src -target 2.1 ogckml22.xsd
39、ListPreference的entryValues只能使用string-array
如果使用了integer-array,在点击这个preference项时会产生一个空指针异常,相关讨论见链接1、链接2。
Update: 又发现一个ListPreference的新问题,即使用string-array,defaultValue值也不能取太大的(超过Integer.MAX_VALUE)整数,否则defaultValue不起作用(选项没有缺省被选中)。真是问题多多。android版本2.2。
40、Android提供了方便的Share机制,但一般都是把文字share到微博或SMS,如何能"share"文字到SD卡文件呢?
这个链接描述了同样的问题,等待有人回答。目前的想法是,在程序里自己实现一个接受ACTION_SEND的activity,做法可参考此链接、或此文章。
41、一个在线查看kml文件的网站,供参考。
GPS Visualizer
42、关于onSaveInstanceState()的使用
通常与onCreate()配合,而非onRestoreInstanceState(),参考这个链接。
2015/5/18补充:一个误区是onSaveInstanceState()方法是当activity被系统销毁时才调用,其实是当activity“变得容易被系统销毁”时就会被调用,例如当按下home键时,此时activity不再在前台显示,也就变得容易被销毁了。参考链接,参考链接2
43、ListView里点击一个item背景色不变为橘黄(缺省的反馈颜色),各种OnClick事件不被触发。
一种可能是在item的布局文件(如foo_list_row.xml)里使用了下面的这些属性(自动滚动显示文字时常会用到),去掉后即可恢复正常:
android:ellipsize="marquee" android:scrollHorizontally="true"
android:marqueeRepeatLimit="marquee_forever" android:focusable="true"
android:focusableInTouchMode="true"
44、实现不停向上滚动的ListView
假设你有一个长长的list需要自动展示,方式是每隔几秒向上滚动一行,有点类似TextView的marquee功能(跑马灯?)。这个需求可以通过Handler实现,具体参考这个链接;当列表滚动到最后一行时,直接滚回第一行显得很生硬,可以用这个链接里提供的方法解决。
45、在Button的文字旁加图片
在