0
내가 가지고있는 Android 앱에는 사용자가 행 요소를 변경할 수있는 몇 가지가 있습니다. 예를 들어 하나의 버튼에는 사용자 의견에 투표 할 수있는 버튼이 있습니다 (Facebook의 '좋아요'또는 Google+의 +1).스크롤 후 목록보기의 변경 사항 저장
사용자가 버튼을 클릭하면 드로어 블 이미지가 변경됩니다. 이것은 잘 작동하고 있습니다. 문제 :
사용자가 아래로 스크롤 한 다음 다시 올라 오면 상태가 저장되지 않고 원래 드로어 블로 돌아갑니다.
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
dCBlue = (Drawable) getContext().getResources().getDrawable(
R.drawable.ic_comment_blue);
dCGray = (Drawable) getContext().getResources().getDrawable(
R.drawable.ic_comment_gray);
convertView = inflater.inflate(R.layout.review_layout, parent,
holder = new ViewHolder();
holder.b2 = (Button) convertView.findViewById(R.id.bReview2);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
convertView.setOnCreateContextMenuListener(null);
}
// later on down
Review r = getItem(position);
votedOn = r.wasVoted;
final Drawable dVBlue = (Drawable) getContext().getResources()
.getDrawable(R.drawable.ic_upvote_blue);
final Drawable dVGray = (Drawable) getContext().getResources()
.getDrawable(R.drawable.ic_upvote_gray);
if (votedOn.equals("1")) {
holder.b2.setCompoundDrawablesWithIntrinsicBounds(null, null, dVBlue, null);
holder.b2.setTag(R.drawable.review_button_press);
} else {
holder.b2.setCompoundDrawablesWithIntrinsicBounds(null, null,dVGray, null);
holder.b2.setTag(R.drawable.review_button);
}
holder.b2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (holder.b2.getTag().equals(R.drawable.review_button)) {
holder.b2.setCompoundDrawablesWithIntrinsicBounds(null, null, dVBlue, null);
holder.b2.setTag(R.drawable.review_button_press);
} else {
holder.b2.setCompoundDrawablesWithIntrinsicBounds(null, null, dVGray, null);
holder.b2.setTag(R.drawable.review_button);
}
bVote = holder.b2;
new HelpfulTask().execute(passing);
});
return convertView;
가}
내가이 순서가 정렬 한 마 : 여기
내가 adapter
getView()
방법의 코드를 어떻게입니까?
이 업데이트는 어떻게 수행됩니까? 그리고 어디? – KickingLettuce
행에 대한 이미지를 업데이트 할 때 onclick에서 행을 나타내는 리뷰 객체에 정보를 어떻게 든 커밋해야합니다. 다음에이 행이 나타날 때 getItem (위치)을 수행하면 그 객체에 의해 표시된 투표 상태가 나타납니다 – jqpubliq
오! 알았다! 고마워 ... 올바른 표시. – KickingLettuce