我有一个listView
女巫显示新闻列表.when用户reada新闻项,出现后应得到gray.so在listadapter
我检查是否有新闻是否reaced和如果它是阅读布局1将负载加载到一个项目,如果不是布局2则将负载加载到该项目。问题是:litview
显示完美,但当我滚动到加载更多的项目和回到listview
灰色listview
项目与布局2的第一个加载项目的前10名获得更改布局1!这里是我的listadapter
代码:问题是什么?listviewitem滚动后刷新不见
package ir.whc.news.adapter;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.support.annotation.LayoutRes;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.NetworkImageView;
import com.orm.query.Condition;
import com.orm.query.Select;
import java.util.List;
import ir.whc.news.R;
import ir.whc.news.classes.MyApplication;
import ir.whc.news.classes.Utility;
import ir.whc.news.model.NewsItem;
import ir.whc.news.model.SeenItem;
/**
* Created by marzieh on 18/03/2016.
*/
public class NewsListAdapter extends BaseAdapter {
private Activity activity;
private LayoutInflater inflater;
private List<NewsItem> newsItems;
private int node_id;
private int subdomain_id;
Context context;
ImageLoader imageLoader = MyApplication.getInstance().getImageLoader(true);
public NewsListAdapter(Activity activity, List<NewsItem> newsItems, int subdomain_id, int node_id) {
this.activity = activity;
this.newsItems = newsItems;
this.node_id = node_id;
this.subdomain_id = subdomain_id;
inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.context = activity;
}
@Override
public int getCount() {
return newsItems.size();
}
@Override
public NewsItem getItem(int position) {
return newsItems.get(position);
}
@Override
public long getItemId(int position) {
return newsItems.get(position).get_id();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.d("position is " ,String.valueOf(position));
final NewsItem item = newsItems.get(position);
if (inflater == null)
inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null)
if (IsReed(item.get_id(),item.get_termId()))
convertView = inflater.inflate(R.layout.item_news_iread, null);
else
convertView = inflater.inflate(R.layout.item_news, null);
if (imageLoader == null)
imageLoader = MyApplication.getInstance().getImageLoader(true);
LinearLayout parrentLayout = (LinearLayout) convertView.findViewById(R.id.parentL);
TextView titleHolder = (TextView) convertView.findViewById(R.id.text_title);
TextView summeryHolder = (TextView) convertView.findViewById(R.id.text_summery);
TextView dateHolder = (TextView) convertView.findViewById(R.id.text_date);
NetworkImageView thumbpicHolder = (NetworkImageView) convertView
.findViewById(R.id.image_news_thumb);
final ImageView image_bookmark = (ImageView) convertView.findViewById(R.id.image_bookmark);
titleHolder.setText(item.get_title());
summeryHolder.setText(item.get_summary());
imageLoader.get(item.get_imgPath(), imageLoader.getImageListener(thumbpicHolder,
R.drawable.ic_launcher,
android.R.drawable.ic_dialog_alert));
thumbpicHolder.setImageUrl(item.get_imgPath(), imageLoader);
thumbpicHolder.setVisibility(item.get_imgPath().trim().isEmpty() ? View.GONE : View.VISIBLE);
dateHolder.setText(Utility.GetFormattedDteTime(newsItems.get(position).get_datePublish()));
//checkBookmark
if (Select.from(NewsItem.class).where(Condition.prop("_id").eq(item.get_id())).list().size() > 0)
image_bookmark.setImageResource(R.drawable.ic_bookmarkfill);
else
image_bookmark.setImageResource(R.drawable.ic_bookmark_normal);
//add or delet from bookmark
image_bookmark.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Utility.Insert_bookmark("_id", item, image_bookmark, NewsItem.class);
}
});
/* Animation animation = AnimationUtils.loadAnimation(context, R.anim.slide_down);
convertView.startAnimation(animation);
*/
return convertView;
}
private boolean IsReed(int _id,int _term_id) {
////check is reed
if (SeenItem.find(SeenItem.class, "_id = ? and _nodeid = ? and _termid = ? and _domainid= ? ", String.valueOf(_id),
String.valueOf(node_id),
String.valueOf(_term_id),
String.valueOf(subdomain_id)).size() > 0) {
return true;
} else
return false;
}
}