我是安卓新手。我想动态突出显示我的 ListView 中的一些行。例如,如果我正在打印一个数字列表,我想将满足某个条件的数值的行设为粗体。
我正在使用自定义适配器。我怎样才能做到这一点?
我是安卓新手。我想动态突出显示我的 ListView 中的一些行。例如,如果我正在打印一个数字列表,我想将满足某个条件的数值的行设为粗体。
我正在使用自定义适配器。我怎样才能做到这一点?
如果我正确理解您的问题,您想突出显示一些行。您可以通过多种方式做到这一点。
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 个文件中执行此步骤。
您必须在 /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
}
........
}