Есть много ответов на переполнение стека на такие вопросы, но я не могу найти тот, который я могу перевести в свою ситуацию.Пользовательский список и адаптер, переопределяющий getView, меняющий цвет текста
Фактически у меня есть listview, который переопределяет метод getView, сам список показывает строку, что я пытаюсь достичь, так это возможность обновить цвет этого текста, основанного на более позднем времени, а не когда сначала создан.
В настоящее время у меня есть позиция, в которой находится элемент, отсюда я в основном застреваю, я не уверен в следующем шаге.
ListView lv = (ListView) rootView.findViewById(R.id.lvBarcodes);
Adapter adaptor = lv.getAdapter();
int Position = getPosition(CurrentBarcode);
lBarcodes l = (lBarcodes) lv.getItemAtPosition(Position);
л в основном содержит 2 метода, набор и получить таким образом, я считаю, что это шаг uneeded, что я бы в принципе нравится это метод setTextColour (позиция)!
Я приложил мой код ниже:
Настройка ListView:
ListView lv = (ListView) rootView.findViewById(R.id.lvBarcodes);
LA_Barcodes adaptor = new LA_Barcodes(getActivity(),barcodeList);
lv.setAdapter(adaptor);
метод:
public class LA_Barcodes extends BaseAdapter{
ViewHolder holder = null;
private static LayoutInflater inflater = null;
private final ArrayList Lines;
public LA_Barcodes(Context _ctx, ArrayList _lines)
{
this.Lines = _lines;
Context ctx = _ctx;
inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
if (Lines.size() <= 0)
return 1;
return Lines.size();
}
@Override
public Object getItem(int position) {
return Lines.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if(convertView == null)
{
vi = inflater.inflate(R.layout.lv_barcodes,null);
holder = new ViewHolder();
holder.Barcodes = (TextView) vi.findViewById(R.id.barcodes);
vi.setTag(holder);
}
else
{
holder = (ViewHolder) vi.getTag();
}
if(Lines.size() == 0)
{
holder.Barcodes.setText("No Outstanding Deliveries!");
}
else
{
lBarcodes temp;
temp = (lBarcodes) Lines.get(position);
holder.Barcodes.setText(temp.getBarcode());
}
return vi;
}
public static class ViewHolder
{
public TextView Barcodes;
}
}
Спасибо! Я думаю, вы имели в виду adapter.addPos (Position); – dave