2010-10-29 29 views
14

我似乎无法使用我定义的可绘制的定制分隔线在使用ListActivity而不是创建自定义ListView时工作。它几乎看起来像虚拟机为我创建自己的ListView,与ListActivity,它使用提供了默认分频器的主题;如果我尝试提供一个,则根本不会在ListView中出现分隔符。在没有自定义ListView的情况下在ListActivity中使用setDivider更改分隔符?

我知道我可以使用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); 
    } 
} 

回答

36

我想通了。这个问题与为我生成一个ListView的ListActivity无关。这正是我如何在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); 
3

试试这个代码:

searchText.setBackgroundColor(getResources().getColor(R.color.wordColorBlack)); 
ListView lv = getListView(); 
lv.setDivider(getResources().getDrawable(R.drawable.divider2)); 
lv.setDividerHeight(2); 
3

要设置列表视图分频器编程

这些代码在你的.java 里面放

ListView lv = (ListView) findViewById(R.id.lv); 
    lv.setDivider(getResources().getDrawable(R.drawable.drawable_divider)); 
    lv.setDividerHeight(1); 

创建绘制对象:{水库>绘制>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> 
相关问题