カスタムListViewなしでListActivityでSetDividerを使用してディバイダーを変更しますか?
-
27-09-2019 - |
質問
私が定義した描画可能な描画可能なものを使用して、使用するときに動作するように、カスタマイズされた仕切りを取得できないようです ListActivity
そして、カスタムを作成しません ListView
. 。 VMが独自に作成したときのようです ListView
私にとって、 ListActivity
, 、提供されたデフォルトの仕切りでテーマを使用します。そして、私がそれを提供しようとした場合、分裂者はに表示されません ListView
まったく。
私はカスタムを作成できることを知っています ListView
XMLを使用して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);
}
}
解決
私はそれを考え出した。この問題は、私にとってリストビューを生成するリストアクティビティとは何の関係もありませんでした。 Javaコードで仕切りを定義していた方法でした。
XMLの色を定義したい場合、リストビューからディバイダー(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:
in 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);
他のヒント
ListViewでプログラムでディバイダーを設定します:
これらのコードはあなたの中に入れられます .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);