1
我有含有customView(圓形)一viewHolder一個customAdapter 我需要找回它包含在視圖持有人,而不是目標項目列表視圖 - 對項目的訪問viewHolder元素點擊
視圖的顏色我該怎麼做? 非常感謝您
我的適配器:
public class WelcomeAdapter extends BaseAdapter {
// contex
private Context context;
// Liste a affichée
private RealmList<Measure> welcomeList;
public RealmList<WelcomeList> getWelcomeList() {
return welcomeList;
}
private LayoutInflater inflater = null;
private int color1;
private int color2;
private int color3;
public WelcomeAdapter (Context context, RealmList<Welcome> welcomeList) {
this.context = context;
this.welcomeList= welcomeList;
color1= ContextCompat.getColor(context, R.color.green);
color2= ContextCompat.getColor(context, R.color.yellow);
color3= ContextCompat.getColor(context, R.color.blue);
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return welcomeList== null ? 0 : welcomeList.size();
}
@Override
public Object getItem(int position) {
return welcomeList== null ? null : welcomeList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.row_welcome, parent, false);
viewHolder = new ViewHolder();
viewHolder.cs = (CircleShape) convertView.findViewById(R.id.row_welcome_cv);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
Welcome welcome= WelcomeList.get(position);
if (welcome.getWelcomePeople() != null) {
for (People p : welcome.getWelcomePeople()) {
if (p.getNumber() > 5) {
viewHolder.cs.setColor(color1);
} else if (p.getNumber() > 15) {
viewHolder.cs.setColor(color2);
} else if (p.getNumber() > 25) {
viewHolder.cs.setColor(color3);
}
}
}
return convertView;
}
class ViewHolder {
CircleShape cs;
}
活動
protected AdapterView.OnItemClickListener welcomeClickListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// need to retrieve the current color of the CircleShape of the view holder associated with the item clicked there
}
};
非常感謝您
正確答案。你還需要確保'Activity'和'Adapter'在同一個包中(因爲OP的當前'ViewHolder'具有包保護的可見性),或者使'ViewHolder'成爲公共類。 –
@Jospeh Roque。謝謝你,完美的作品:) – ulquiorra