こんにちは私はそれの最初の行だけを強調表示したいリストがありますが、問題は最初の行 (それは最後の最後の行です)(スクロール後に見えるようになります)も強調表示されている、と私はあまりにも速くスクロールするときに、第2の最後の行は次のようにリストビューは最初の行のみを強調表示
public class ValueItemsListArrayAdapter extends ArrayAdapter<ValueItem> {
private final Activity context;
private final ArrayList<ValueItem> mValueItem;
int listHeight;
ListView lv;
boolean multiOwner;
boolean containRisk;
//private boolean fillScreen;
public ValueItemsListArrayAdapter(Activity context, ArrayList<ValueItem> mValueItem, boolean multiOwner,boolean containRisk) {
super(context, R.layout.result_list_item, mValueItem);
this.context = context;
this.mValueItem = mValueItem;
lv = (ListView) context.findViewById(R.id.valueslist);
this.multiOwner = multiOwner;
this.containRisk = containRisk;
//listHeight=lv.getHeight();
//this.fillScreen=fillScreen;
}
// static to save the reference to the outer class and to avoid access to
// any members of the containing class
private class ViewHolder {
public TextView titleTextView, valueTextView;
public View row;
public ImageView icon;
public LinearLayout llResult;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// ViewHolder will buffer the assess to the individual fields of the row layout
final ViewHolder holder;
// Recycle existing view if passed as parameter
// This will save memory and time on Android
// This only works if the base layout for all classes are the same
View rowView = convertView;
if (rowView == null) {
LayoutInflater inflater = context.getLayoutInflater();
rowView = inflater.inflate(R.layout.result_list_item, null, true);
holder = new ViewHolder();
holder.titleTextView = (TextView) rowView.findViewById(R.id.result_title);
holder.llResult = (LinearLayout) rowView.findViewById(R.id.llResult);
holder.valueTextView = (TextView) rowView.findViewById(R.id.result_value);
holder.row = rowView.findViewById(R.id.row);
holder.icon = (ImageView) rowView.findViewById(R.id.many_owner_icon);
ViewFont.setListRowTextResizing(rowView, context);
rowView.setTag(holder);
} else {
holder = (ViewHolder) rowView.getTag();
}
//String s=mValueItem.get(position).getTitle();
// int x=holder.titleTextView.getHeight();
holder.titleTextView.setText(mValueItem.get(position).getTitle());
if (multiOwner && mValueItem.get(position).getTitle().equals(Plate.getOwnerNameTitle())) {
//rowView.setBackgroundColor(Color.GREEN);
holder.titleTextView.setTextColor(Color.rgb(57, 113, 67));
holder.valueTextView.setTextColor(Color.rgb(57, 113, 67));
holder.icon.setVisibility(View.VISIBLE);
if (containRisk && position == 0) {
holder.llResult.setBackgroundColor(Color.RED);
holder.icon.setImageResource(R.drawable.car_risk);
}
} else {
holder.valueTextView.setTextColor(Color.BLACK);
holder.titleTextView.setTextColor(Color.BLACK);
holder.icon.setVisibility(View.GONE);
if (containRisk && position == 0) {
holder.llResult.setBackgroundColor(Color.RED);
holder.icon.setVisibility(View.VISIBLE);
holder.icon.setImageResource(R.drawable.car_risk);
}
Log.wtf("position",""+position);
}
holder.valueTextView.setText(mValueItem.get(position).getValue());
//holder.valueTextView.setTextColor(mValueItem.get(position).getColor());
if (mValueItem.get(position).getBackground() != 0)
holder.row.setBackgroundResource(mValueItem.get(position).getBackground());
else
holder.row.setBackgroundResource(R.drawable.result_text);
Log.d("pos",""+position);
return rowView;
}
}
1つの行のみをハイライトしたいですか? – Jai
yes(ポジション== 0) –