14

ListActivityを使用し、カスタムを作成していない場合に、定義したDrawableを使用して、カスタマイズされた仕切りを機能させることができないようですListViewListViewVMが私のために独自のものを作成するときListActivity、それはデフォルトの仕切りが提供されたテーマを使用しているように見えます。そして、私がそれを提供しようとすると、仕切りはまったく表示されませんListView

ListViewXMLを使用してカスタムを作成し、その上で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);
    }
}
4

3 に答える 3

38

私はそれを考え出した。この問題は、ListActivityがListViewを生成することとは何の関係もありませんでした。それは、私がJavaコードで仕切りを定義する方法にありました。

XMLで色を定義する場合、ListActivityから自動的に拡張されるListViewで仕切り(ListView行間の境界)を定義する方法は2つあります。

方法1:

res / values/colors.xmlに次のように入力します。

<resources>
 <color name="sage">#cceebb</color>
</resources>

ListActivity-extendingクラスで、次のようにします。

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);
于 2010-10-30T06:38:12.553 に答える
4

プログラムでリストビューに仕切りを設定するには

これらのコードは、.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>
于 2015-03-25T09:24:57.347 に答える
3

このコードを試してください:

searchText.setBackgroundColor(getResources().getColor(R.color.wordColorBlack));
ListView lv = getListView();
lv.setDivider(getResources().getDrawable(R.drawable.divider2));
lv.setDividerHeight(2);
于 2014-03-12T10:43:35.140 に答える