Listview
Facebook の友達の画像と名前を表示するがありますButton
。右側の各行には、特定の Facebook の友達と何らかの操作を行うための がありButton
ます。条件に基づいて 3 つの背景を持つことができます。それらは次のとおりです。
1.友達が招待されていない場合は、ボタンの背景を「Background1.png」に設定します。
2.友達が招待された場合、ボタンの背景を「background2.png」に設定します。
3.その友人がアンケートを完了した場合、ボタンの背景を「background3.png」に設定します。
友達が招待されているかどうかを確認するいくつかの条件があります。また、アンケートのことでもあります。添付のスクリーンショットは、実際に必要なものを示しています。
私の問題は、スクロール中にボタンの背景が変更されListview
、位置が再利用されることです.Facebookの友人の数が変化し、メモリの問題が表示されるため、一般的なビューを使用して表示することはできません. 以下は、私がこれまでに試したことです。これを達成する方法を教えてください。
コード:
@Override
public View getView(int position, View convertView,
ViewGroup parent) {
View vi = convertView;
if (convertView == null)
vi = mInflater.inflate(R.layout.category_listview, null);
Facebook_FriendImage=(SmartImageView)vi.findViewById(R.id.category_image);
Facebook_FriendName = (TextView) vi.findViewById(R.id.category_name);
invite = (Button) vi.findViewById(R.id.invite);
invite.setTag(position);
if (position==2 || position==3) {
invite.setBackgroundResource(R.drawable.background1);
}
else if (position==5 || position==8) {
invite.setBackgroundResource(R.drawable.background2);
}
else {
invite.setBackgroundResource(R.drawable.background3);
}
//Snippet for loading FB Friend Image
int loader = R.drawable.no_image;
Facebook_FriendImage.setScaleType(ImageView.ScaleType.FIT_XY);
Facebook_FriendImage.setImageUrl(GlobalClass.FACEBOOK_FRIEND_IMAGE_URL.get(position), loader);
//Snippet for Loading FB Friend Name
String unicode=new String(GlobalClass.FACEBOOK_FRIEND_NAME.get(position));
Typeface font= Typeface.createFromAsset(getAssets(), "NotoSans-Bold.ttf");
Facebook_FriendName.setTypeface(font);
Facebook_FriendName.setText(unicode);
return vi;
}
ここで指定した if 条件は、単純化するためのものです。