最近遇到个很奇怪的问题,在虚拟机上测试listview 滑动分页后点击后一切正常,但在手机上测试确发现滑动分页后不能点击了,不知道是什么原因。。
adapter = new listViewAdapter(this);
listView.setAdapter(adapter);      
listView.setOnItemClickListener(this);  
listView.setSelection(0);



listView.setOnScrollListener(new OnScrollListener() {
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
lastItem = firstVisibleItem + visibleItemCount - 1;
int scrolllength=20;
if (adapter.count<scrolllength) {
if (firstVisibleItem+visibleItemCount==totalItemCount) {
adapter.count += 10;
adapter.notifyDataSetChanged();
listView.setSelection(lastItem);
int currentPage=adapter.count/10;
Toast.makeText(getApplicationContext(), "第"+currentPage+"页", Toast.LENGTH_LONG).show();
}
}
else {
 listView.removeFooterView(loadingLayout); 
}
}
public void onScrollStateChanged(AbsListView view, int scrollState) {

}
});
}
class listViewAdapter extends BaseAdapter {

private LayoutInflater layoutInflater;

int count = 10;
public listViewAdapter(Context context) {
this.layoutInflater = LayoutInflater.from(context);
}


public int getCount() {
return count;
}
public Object getItem(int pos) {
return pos;
}
public long getItemId(int pos) {
return pos;
} public View getView(int pos, View v, ViewGroup p) {
final ViewHolder holder;

if (v == null) {
v = layoutInflater.inflate(R.layout.textview, null);
holder = new ViewHolder();
holder.title = (TextView)v.findViewById(R.id.title);
holder.pubdate = (TextView)v.findViewById(R.id.pubdate);
v.setTag(holder);
} else {
holder = (ViewHolder)v.getTag();
}
holder.title.setText(RSSFeed.newtitle[pos]);
holder.pubdate.setText(feed.getItem(pos).getPubDate());  return v;

}
}

解决方案 »

  1.   

    上log.
    虚拟机能正常动,可能是程序本身以外的问题
      

  2.   

    确认下你的onItemClick函数
    listView的这个事件,滑动后会丢失?listView重置了?
      

  3.   

    在你的 OnItemClick  函数里面打log 看程序掉进去没有。你的viewHolder 类为啥没看到?是不是把其中某个textview 设置成了focus的?那样也不能得到点击效果。
      

  4.   

    问题应该是,滑动到最后一页,onitemSelected事件不起作用,是footer移去后引起的,你去百度相关问题的解决方法!我也遇到了这个问题!