Android应用程序的简单自定义ListView?

时间:2014-01-30 09:14:29

标签: android listview android-listview

我是一名历史老师,在尝试为我的课程创建“总统事实”应用程序时具有最少的编码经验。我已经观看/阅读了多个教程,但我似乎无法成功创建一个简单的自定义列表视图,我可以在其中编辑文本大小和文本颜色。

老实说,这就是我所需要的。列表视图实际上允许我自定义它。除了在列表中显示文本外,我不需要它做任何其他事情。

我觉得代码显然很容易,但我完全失去了,我想在本周末为我的学生完成申请。

任何简单的教程链接或代码都将非常感激。非常感谢你!

编辑:我知道如何创建项目并填充常规列表视图。我遇到的唯一麻烦是能够编辑文本外观。再次感谢!

3 个答案:

答案 0 :(得分:0)

您需要实现抽象BaseAdapter类。例如:

public class FeedAdapter extends BaseAdapter {
    private ArrayList<FeedItem> items;
    private LayoutInflater layoutInflater;

    FeedAdapter(Context context, ArrayList<FeedItem> list, int bgColor){
        items = list;
        layoutInflater = LayoutInflater.from(context);
    }   

    @Override
    public int getCount() {
        return items.size();
    }

    @Override
    public FeedItem getItem(int index) {
        return items.get(index);
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }   

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row;

        if (null == convertView) {
            row = layoutInflater.inflate(R.layout.romanblack_feed_item, null);
        } else {
            row = convertView;
        }

        TextView title = (TextView) row.findViewById(R.id.romanblack_rss_title);
        TextView description = (TextView) row.findViewById(R.id.romanblack_rss_description);
        TextView pubdate = (TextView) row.findViewById(R.id.romanblack_rss_pubdate);

        String titleString = items.get(position).getTitle();
        title.setText(titleString);

        String descString = items.get(position).getAnounce(70);
        description.setText(descString);

        pubdate.setText(items.get(position).getPubdate(""));

        return row;
    }

}

答案 1 :(得分:0)

您应该为列表视图使用适配器,并在该适配器中为自定义布局充气。此布局将用于列表视图的每个项目。在该布局中,您可以进行任何所需的更改。

编辑:看看this tutorial

答案 2 :(得分:0)

要设置视图样式,请转到值目录并编辑或如果不存在,请创建styles.xml。 在那里,您可以为视图属性定义标准值,例如

<style name="TextStyleNormal" parent="@android:style/TextAppearance.Medium">
    <item name="android:textSize">@dimen/TextSizeNormal</item>
    <item name="android:gravity">center</item>
    <item name="android:background">@null</item>
    <item name="android:layout_margin">4dp</item>
    <item name="android:shadowDx">2</item>
    <item name="android:textStyle">bold</item>
    <item name="android:shadowDy">2</item>
    <item name="android:shadowRadius">2</item>
    <item name="android:layout_gravity">center</item>
</style>

然后在您的视图xml定义中,只需使用

将该样式添加到所需的视图中
style="@style/TextStyleNormal"  

当然,您可以将任何这些属性直接添加到视图中。