항목 목록을 표시하는 ListActivity가 있고 각 항목의 오른쪽 끝에 ImageView가 있으며 시작 부분에 화살표 아이콘이 표시되어 있습니다. 특정 버튼 이 화살표 아이콘을 삭제 아이콘으로 대체하고 싶습니다.이 경우 ListView의 ArrayAdapter를 변경하고 notifyDataSetChanged()를 호출했습니다 .ArrayAdapter의 getView 메소드에서 ImageView의 ImageResource를 설정했지만 변경 사항이 표시되지 않습니다. 첫 번째 항목 만 아이콘이 변경되었습니다.android의 사용자 정의 ArrayAdapter는 ListActivity에서만 첫 번째 항목의 뷰를 업데이트합니다.
CCAdapter mAdapter=new CCAdapter(context, R.layout.lisitem, CCS,2);
MyList.this.setListAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
MyList.this.getListView().invalidateViews();
을하지만 목록이 단지 1 항목을 수행 한 후 삭제를 다음 내가 할 단추의 OnClick 방법에
private class CCAdapter extends ArrayAdapter<CCcenter>{
ArrayList<CCcenter> items;
int mode;
public CCAdapter(Context context, int textViewResourceId, ArrayList<CCcenter> Items,int m) {
super(context, textViewResourceId, Items);
this.items=Items;
this.mode=m;
// TODO Auto-generated constructor stub
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.lisitem, null);
}
final CCcenter o = items.get(position);
if (o != null) {
TextView title = (TextView) v.findViewById(R.id.ttl_txt);
TextView desc=(TextView)v.findViewById(R.id.desc_txt);
TextView dist=(TextView)v.findViewById(R.id.dist_txt);
ImageView icon=(ImageView)findViewById(R.id.lst_icon);
RatingBar rating=(RatingBar)findViewById(R.id.lst_ratings);
if(title!=null)
{
title.setText(o.title);
}
if(desc!=null)
{
desc.setText(o.desc);
}
if(dist!=null)
{
dist.setText(o.dist);
}
if(rating!=null)
{
rating.setRating(o.rating);
}
if(icon!=null) //edit mode
{
if(this.mode==1)
{
icon.setImageResource(R.drawable.arrow);
}
else
{
icon.setImageResource(R.drawable.dlet);
}
}
}
return v;
}
}
: 여기
는 ArrayAdapter와 코드 다른 사람들은 기본 화살표 아이콘을 보여줍니다. 내가 뭘 잘못하고 있니? 당신은 선언 한final CCcenter o = items.get(position);
이 설정되고 나면 그 값이 처음 당신이되고 함께 붙어있어 그래서 최종 ... 혹시, 변경할 수 없습니다 : 내 생각
여전히 문제가 발생하지 않습니다. – Mehedi