私のGetView()
私のBaseAdapter
クラスのメソッド...私はビューホルダーを持っています。 holder.feedUpVotebutton
をクリックしたときfeed.numOFLikes
Textviewが増加します。問題は、下にスクロールして元に戻ったときの値です。私はnotifydatasetChanged();
に電話するのを拒否します。何も追加していないか、リストから何も削除していないからです。アンドロイドでBaseAdapterでビューのテキストを設定するには?
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
likes = new int[GlobalFeedTab.arrayFeedList.size()];
ViewHolder holder;
if (view == null) {
position = i;
view = inflater.inflate(R.layout.feed_list_row, viewGroup, false);
holder = new ViewHolder();
holder.feedNumOfLikes = (TextView) view.findViewById(R.id.feedNumofLikes);
holder.feedUpVoteButton = (Button) view.findViewById(R.id.feedUpVoteButton);
view.setTag(holder);
}
else if(view != null){
position = i;
holder = (ViewHolder) view.getTag();
}
HashMap<String, String> mFeed = new HashMap<>(); //Hashmap of data that I get from the MainActivity
mFeed = GlobalFeedTab.arrayFeedList.get(position);
holder.feedNumOfLikes.setText(mFeed.get("likes"));
holder.feedUpVoteButton.setTag(position);
holder.feedUpVoteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = (Integer) v.getTag();
ParseObject parseObFeed = objects.get(pos);
likes[pos] += 1;
parseObFeed.put("likes", likes[pos]);
holder.feedNumOfLikes.setText(String.valueOf(parseObFeed.getInt("likes")
)); //This is where I set the Text
parseObFeed.saveInBackground();
}
});
}
class ViewHolder {
TextView feedNumOfLikes;
Button feedUpVoteButton;
}
ArrayAdapterまたはRecyclerView.Adapterを使用しないのはなぜですか? –
'GlobalFeedTab.arrayFeedList'は私のArrayAdapterです。 @ cricket_007 – grant
私はそうは思わない。これは 'ArrayList'です –