hot*_*309 14 android drawable listactivity divider android-listview
在使用a ListActivity而不是创建自定义时,我似乎无法使用我已定义的Drawable来获得自定义分隔符ListView.这似乎就像当VM ListView为我创建它自己的时候ListActivity,它使用了一个带有默认分隔符的主题; 如果我试图提供一个,根本就没有分隔符ListView.
我知道我可以ListView使用XML 创建自定义并在其上定义android:divider ListView,这确实识别我的自定义分隔符Drawable.但是如果我能弄明白如何让我自己的分频器工作,我宁愿让它ListActivity自己创建ListView.
这是我现在使用的代码:
public class Categories extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final String[] OPTIONS = {
"Hello",
"Goodbye",
"Good Morning",
"Greetings",
"Toodaloo"
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1, OPTIONS);
setListAdapter(adapter);
ListView lv = getListView();
PaintDrawable sage = new PaintDrawable(R.drawable.sage);
lv.setDivider(sage);
lv.setDividerHeight(1);
}
}
Run Code Online (Sandbox Code Playgroud)
hot*_*309 37
我想到了.该问题与为我生成ListView的ListActivity无关.这是我如何在Java代码中定义分隔符.
如果要在XML中定义颜色,我可以通过两种方式在ListView上定义分隔符(ListView行之间的边界),该分隔符从ListActivity自动膨胀:
方法1:
在res/values/colors.xml中,输入以下内容:
<resources>
<color name="sage">#cceebb</color>
</resources>
Run Code Online (Sandbox Code Playgroud)
在ListActivity扩展类中,执行以下操作:
ListView lv = getListView();
ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.color.sage));
lv.setDivider(sage);
lv.setDividerHeight(1);
Run Code Online (Sandbox Code Playgroud)
方法2:
在res/values/colors.xml中:
<resources>
<drawable name="sage">#cceebb</drawable>
</resources>
Run Code Online (Sandbox Code Playgroud)
在您的类中扩展ListActivity:
ListView lv = getListView();
ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.drawable.sage));
lv.setDivider(sage);
lv.setDividerHeight(1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27729 次 |
| 最近记录: |