0

我是安卓新手。我想动态突出显示我的 ListView 中的一些行。例如,如果我正在打印一个数字列表,我想将满足某个条件的数值的行设为粗体。

我正在使用自定义适配器。我怎样才能做到这一点?

4

2 回答 2

1

如果我正确理解您的问题,您想突出显示一些行。您可以通过多种方式做到这一点。

1)您可以制作2个xml文件,其中包括普通数据视图和突出显示的数据视图。根据您的数据,您可以替换 xml 文件以进行查看。这样一个

getView(...)
{
    if(condition) 
        myView = lInflater.inflate(R.layout.normal_data,parent,false);
    else
        myView = lInflater.inflate(R.layout.highlighted_data,parent,false);

    //do something with row

    return myView;
}

2) 以上所有步骤。但!如果这仅适用于字体,您可以在 1 个文件中执行此步骤。

于 2013-07-21T12:26:49.440 回答
1

您必须在 /res/values 文件夹中创建一个样式,例如 style.xml:

<resources>
    <style name="textbold" parent="@android:style/TextAppearance">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textstyle">bold</item>
    </style>
</resources>

并在您的自定义列表视图适配器中使用 setTextAppearance() 方法:

@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
    View result = getLayoutInflater().inflate(xml_resource, null);
    TextView tx = (TextView) result.findViewById(R.id.text-view-id);

    if(condition == true)
    {
        tx.setTextAppearance(context, R.style.your-style-name);
    }
    else
    {
        //something else
    }
    ........
}
于 2013-07-21T12:46:46.283 回答