gpt4 book ai didi

android - 如何根据正值或负值更改自定义 ListView 中数组列表项的颜色

转载 作者:行者123 更新时间:2023-11-29 21:10:16 25 4
gpt4 key购买 nike

我是 Android 的新手,我正在构建一个应用程序来显示来自 XML 提要的股票价格。

我有一个包含 3 个项目的数组列表。但是,我想将数组列表中其中一项的颜色更改为红色(如果是 -ve)或绿色(如果是 +ve)。

我不知道如何执行此操作,也不知道我的代码中哪里最好执行此操作。

请帮忙....

我的适配器类:

public class TheAdapter extends ArrayAdapter<TheMetal>{

public TheAdapter(Context ctx, int textViewResourceId, List<TheMetal> sites) {
super(ctx, textViewResourceId, sites);
}



@Override
public View getView(int pos, View convertView, ViewGroup parent){
RelativeLayout row = (RelativeLayout)convertView;
Log.i("StackSites", "getView pos = " + pos);
if(null == row){

LayoutInflater inflater = (LayoutInflater)parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = (RelativeLayout)inflater.inflate(R.layout.row_metal, null);
}




TextView dispNameTxt = (TextView)row.findViewById(R.id.displayNameText);
TextView spotPriceTxt = (TextView)row.findViewById(R.id.spotPriceText);
TextView changeTxt = (TextView)row.findViewById(R.id.changeText);


dispNameTxt.setText (getItem(pos).getDisplayName());
spotPriceTxt.setText(getItem(pos).getSpotPrice());
changeTxt.setText(getItem(pos).getChange());


return row;

}

我的 row_metal 布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp" >



<TextView
android:id="@+id/displayNameText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:layout_marginLeft="20dp" />

<TextView
android:id="@+id/spotPriceText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/displayNameText"
android:textSize="19sp"
android:textStyle="bold"
android:gravity="right"
android:layout_alignParentRight="true"
android:layout_marginRight="30dp" />

<TextView
android:id="@+id/changeText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/spotPriceText"
android:layout_toRightOf="@+id/displayNameText"
android:textSize="16sp"
android:gravity="right"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
/>

最佳答案

就是这么简单。您只需要将这些行放在您的 getView() 方法中:

        if (Double.parseDouble(getItem(pos).getChange())>=0) {
row.setBackgroundColor(Color.parseColor("#00FF00");
changeTxt.setTextColor(Color.parseColor("#00FF00"));
} else {
row.setBackgroundColor(Color.parseColor("#FF0000");
changeTxt.setTextColor(Color.parseColor("#FF0000"));
}

关于android - 如何根据正值或负值更改自定义 ListView 中数组列表项的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23120428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com