У меня есть массив. Я перечисляю элементы с этим.Адаптер обновления от другого метода
Мой код:
static class ViewHolder {
TextView nameView;
ImageView imageView;
BadgeView badge;
}
public void placeRandomUsers(final String search) {
randomAdapter = new ArrayAdapter<JsonObject>(this, 0) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.random_bars, null);
holder = new ViewHolder();
holder.nameView=(TextView)convertView.findViewById(R.id.tweet);
holder.badge = new BadgeView(getContext(), holder.nameView);
holder.badge.setTextColor(Color.WHITE);
holder.badge.setBadgeBackgroundColor(Color.parseColor("#FF0019"));
holder.imageView=(ImageView)convertView.findViewById(R.id.image);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
if (position >= getCount() - 3 && search.equals("") == true) {
loadRandomUsers("");
}
JsonObject user=getItem(position);
String name=user.get("name").getAsString();
String image_url="http://dd.com/profile/thumb/"+user.get("photo").getAsString();
holder.nameView.setText(name);
Ion.with(holder.imageView)
.placeholder(R.drawable.twitter)
.load(image_url);
holder.badge.setText("1");
holder.badge.hide();
return convertView;
}
};
ListView listView = (ListView)findViewById(R.id.list);
listView.setAdapter(randomAdapter);
}
Как вы можете видеть, я нагружение badge.But значок не виден, я хочу, чтобы показать его из другого метода для конкретного элемента.
Пример: randomAdapter(position_id).holder.badge.show();
Я хочу код, подобный этому. Как я могу это сделать?
Я попробовал, я нажав шестой элемент, он добавляет значок на 8 item.When я щелкаю к 8-му пункту, приложение рушится с nullpointerexception.Когда я нажимаю на 1-й, 2-й или 3-й и т. д., он работает нормально. –
О, getChildAt работает только для видимых видов, а нуль соответствует firstVisiblePosition, дождитесь обновления ответа. – pomber
Можете ли вы привести пример для невидимых строк? –