在ListActivity改变与setDivider分频器没有自定义的ListView?
-
27-09-2019 - |
题
我似乎无法得到一个定制的分频器,使用ListActivity
,而不是创建自定义ListView
在使用可抽拉我定义,工作。这看起来几乎是当虚拟机为我创建自己的ListView
,与ListActivity
,它使用与提供的默认分隔一个主题等;如果我尝试,以提供一个无分隔出现在所有ListView
。
我知道我可以使用XML创建自定义ListView
和定义的android:对ListView
分频器,这确实认识我的自定义分隔绘制对象。但我宁愿只是让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);
}
}
解决方案
我计算出来。这个问题没有任何关系与ListActivity产生一个ListView我。这是在我是如何限定的Java代码的分隔符。
有两种方式,我看到的是自动从ListActivity膨胀的ListView控件定义分隔(ListView的行之间的边界),如果你想在XML来定义颜色:
方法1:
在RES /值/ colors.xml,把下面的:
<resources>
<color name="sage">#cceebb</color>
</resources>
在您的延伸ListActivity级,操作如下:
ListView lv = getListView();
ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.color.sage));
lv.setDivider(sage);
lv.setDividerHeight(1);
方法2:
在RES /值/ colors.xml:
<resources>
<drawable name="sage">#cceebb</drawable>
</resources>
而在你的类,它扩展ListActivity:
ListView lv = getListView();
ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.drawable.sage));
lv.setDivider(sage);
lv.setDividerHeight(1);
其他提示
要设置在分频器列表视图编程强>:
这些代码把里面在的.java 类
ListView lv = (ListView) findViewById(R.id.lv);
lv.setDivider(getResources().getDrawable(R.drawable.drawable_divider));
lv.setDividerHeight(1);
<强>创建绘制对象强>:{RES>绘制>的 drawable_divider.xml 强>}
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#ececec"></solid>
</shape>
试试这个代码:
searchText.setBackgroundColor(getResources().getColor(R.color.wordColorBlack));
ListView lv = getListView();
lv.setDivider(getResources().getDrawable(R.drawable.divider2));
lv.setDividerHeight(2);
不隶属于 StackOverflow