ListActivity
を使用し、カスタムListView
を作成していない場合、定義したDrawableを使用してカスタマイズされた仕切りを機能させることができないようです。 VMが独自のListView
を作成し、ListActivity
を使用すると、デフォルトの仕切りが提供されたテーマを使用するように見えます。 1つ提供してみてください。ListView
に仕切りはまったく表示されません。
XMLを使用してカスタムListView
を作成し、そのListView
でAndroid:dividerを定義できることを知っています。これにより、カスタムディバイダー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);
}
}
私はそれを考え出した。この問題は、ListActivityがListViewを生成することとは何の関係もありませんでした。 Javaコードで仕切りを定義する方法にありました。
XMLで色を定義する場合、ListActivityから自動的に拡張されるListViewで仕切り(ListView行間の境界)を定義する方法は2つあります。
方法1:
Res/values /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/values/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);
Drawableの作成:{res> drawable> 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);