我知道这是一个非常奇怪的问题,但仍然无法摆脱它,我有一个片段HomeFragment,其中包含一个Customized Listview,当一个项目被cliked,Listview项目突出显示,所有这一切工作完美但是当我从Listview中选择一个项目并打开Navigarion抽屉,无论如何,HomeFragment的ListView离开选择,我不知道我在哪里做错了,请帮忙 这是适配器类
/* VIDEO LIST ADAPTER CLASS */
public class VideoListAdapter extends BaseAdapter {
private Context context;
int position;
private ArrayList<VideoListBean> adapterVideoList;
private ArrayList<VideoListBean> arraylist;
public VideoListAdapter(Context context,
ArrayList<VideoListBean> videoList) {
this.context = context;
this.adapterVideoList = videoList;
this.arraylist = new ArrayList<VideoListBean>();
this.arraylist.addAll(adapterVideoList);
}
@Override
public int getCount() {
return adapterVideoList.size();
}
@Override
public VideoListBean getItem(int position) {
return adapterVideoList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
class ViewHolderItem {
ImageView videothumb;
TextView videotitle;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolderItem viewHolder = null;
if (convertView == null) {
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(
R.layout.homevideolist_list_item, parent, false);
viewHolder = new ViewHolderItem();
viewHolder.videothumb = (ImageView) convertView
.findViewById(R.id.homevideoThumb);
viewHolder.videotitle = (TextView) convertView
.findViewById(R.id.homevideoTitle);
convertView.setTag(viewHolder);
convertView.setTag(R.id.homevideoThumb, viewHolder.videothumb);
convertView.setTag(R.id.homevideoTitle, viewHolder.videotitle);
} else {
viewHolder = (ViewHolderItem) convertView.getTag();
}
viewHolder.videothumb.setTag(position);
viewHolder.videotitle.setTag(position);
if (adapterVideoList.get(position).getTitle().equals(null)
|| adapterVideoList.get(position).getTitle().equals("")
|| adapterVideoList.get(position).getTitle().equals("null")) {
if (adapterVideoList.get(position).getLink()
.contains("dailymotion")) {
viewHolder.videotitle.setText("Dailymotion Video");
videoList.get(position).setTitle("Dailymotion Video");
} else if (adapterVideoList.get(position).getLink()
.contains("youtube")) {
viewHolder.videotitle.setText("Youtube Video");
videoList.get(position).setTitle("Youtube Video");
} else if (adapterVideoList.get(position).getLink()
.contains("rtmp")) {
viewHolder.videotitle.setText("RTMP Stream");
videoList.get(position).setTitle("RTMP Stream");
} else if (adapterVideoList.get(position).getLink()
.contains(".mp4")
|| adapterVideoList.get(position).getLink()
.contains(".3gp")
|| adapterVideoList.get(position).getLink()
.contains(".m4a")
|| adapterVideoList.get(position).getLink()
.contains(".mov")
|| adapterVideoList.get(position).getLink()
.contains(".m4v")) {
viewHolder.videotitle.setText("Video");
videoList.get(position).setTitle("Video");
}
} else {
viewHolder.videotitle.setText(adapterVideoList.get(position)
.getTitle()
+ "\n"
+ "\n"
+ videoList.get(position).getDuration());
}
if (adapterVideoList.get(position).getLink().contains("rtmp://")) {
viewHolder.videotitle.setText(adapterVideoList.get(position)
.getTitle());
}
if (adapterVideoList.get(position).getImage().isEmpty()) {
try {
Picasso.with(context).load(R.drawable.no_image_available)
.into(viewHolder.videothumb);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
Picasso.with(context)
.load(adapterVideoList.get(position).getImage())
.into(viewHolder.videothumb);
}
System.out.println("Selected positon getview method--->"
+ selectedPosition);
if (selectedPosition == position) {
convertView.setBackgroundColor(Color.parseColor("#35113b"));
Drawable d = convertView.getBackground();
d.setAlpha(110);
} else {
convertView.setBackgroundColor(Color.TRANSPARENT);
}
return convertView;
}
public void filter(String charText) {
charText = charText.toLowerCase(Locale.getDefault());
adapterVideoList.clear();
if (charText.length() == 0) {
adapterVideoList.addAll(arraylist);
} else {
for (VideoListBean wp : arraylist) {
if (wp.getTitle().toLowerCase(Locale.getDefault())
.contains(charText)) {
adapterVideoList.add(wp);
}
}
}
notifyDataSetChanged();
}
}
答案 0 :(得分:0)
在您的NavigationDrawer代码中添加以下内容:
...
/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
yourListView.clearChoices(); //Clear any choices previously set
...
}