Я застрял на небольшой ошибке, пытаясь реализовать пользовательский список в Java для приложения для Android.Custom ListView Adapter [Android]
Я пытаюсь перечислить слова сложения (обычно, 100 < n < 500) и выделить подмножество этих строк, изменив цвет текста. Оба набора слов (глобальные и подмножества) перечислены в коллекции (в настоящее время ArrayList)
Проблема в том, что некоторые слова отсутствуют. Кажется случайным. Я думаю, что более вероятно, что слова, предназначенные для «выделения», отсутствуют. (Т.е. я попробовал несколько различных вариантов кода, но вот то, что я в настоящее время есть:
public class ResultsAdapter<T> extends ArrayAdapter<String> {
private ArrayList<String> mHighlightSet;
private ArrayList<String> mGlobalSet;
private Context mContext;
public ResultsAdapter(
Context context,
int textViewResourceId,
ArrayList<String> globalSet,
ArrayList<String> highlightSet) {
super(context, textViewResourceId, globalSet);
mContext = context;
mGlobalSet = globalSet;
mHighlightSet = highlightSet;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// return super.getView(position, convertView, parent);
final String text = mGlobalSet.get(position);
TextView view = new TextView(mContext);
view.setText(text);
if(mHighlightSet.contains(text))
view.setTextColor(Color.RED);
else
view.setTextColor(Color.WHITE);
return view;
}
Этот обычай адаптер получает экземпляр и присваивается следующий код:
if (mSummaryList != null & mAllWords != null & foundWords != null) {
ArrayList<String> globalSet = new ArrayList<String>(mAllWords.keySet()); // mAllWords is a TreeMap
ArrayList<String> subset = hud.getFoundWords();
mResultsAdapter = new ResultsAdapter<String>(this, R.layout.simplerow, globalSet, subset);
mSummaryList.setAdapter(mResultsAdapter);
mSummaryList.setOnItemClickListener(onWordListItemClickListener);
}
оказывается, что есть некоторая нестыковка между переменными данными, и то, что отображается на экране. Я потерял, пожалуйста, помогите.
заранее спасибо!
Спасибо за быстрый ответ Майры! mAllwords был первоначально HashMap изменен на TreeMap из-за его свойств автосортировки. Я не хотел сортировать вручную, поскольку это казалось неэффективным (хотя копирование всех ключей делает по существу одно и то же). Что касается TextView - это фактически элементы * в * ListView. В прошлой версии кода я вытащил существующий объект TextView из «супер» и изменил цвет текста: TextView view = (TextView) super.getView (position, convertView, parent); Я попробую использовать меньшие наборы слов. И сортировка вручную. Еще раз спасибо! – pjama