打印log07-14 10:35:26.287: D/MainCityAdapter(3386): getView 0 null
07-14 10:35:26.297: D/MainCityAdapter(3386): getView 1 android.widget.LinearLayout@405baae0
07-14 10:35:26.297: D/MainCityAdapter(3386): getView 2 android.widget.LinearLayout@405baae0
07-14 10:35:26.297: D/MainCityAdapter(3386): getView 3 android.widget.LinearLayout@405baae0
07-14 10:35:26.297: D/MainCityAdapter(3386): getView 4 android.widget.LinearLayout@405baae0
07-14 10:35:26.297: D/MainCityAdapter(3386): getView 5 android.widget.LinearLayout@405baae0
07-14 10:35:26.297: D/MainCityAdapter(3386): getView 6 android.widget.LinearLayout@405baae0
07-14 10:35:26.297: D/MainCityAdapter(3386): getView 7 android.widget.LinearLayout@405baae0
07-14 10:35:26.297: D/MainCityAdapter(3386): getView 8 android.widget.LinearLayout@405baae0
07-14 10:35:26.307: D/MainCityAdapter(3386): getView 0 android.widget.LinearLayout@405baae0
07-14 10:35:26.307: D/MainCityAdapter(3386): getView 1 null
07-14 10:35:26.307: D/MainCityAdapter(3386): getView 2 null
07-14 10:35:26.307: D/MainCityAdapter(3386): getView 3 null
07-14 10:35:26.307: D/MainCityAdapter(3386): getView 4 null
07-14 10:35:26.317: D/MainCityAdapter(3386): getView 5 null
07-14 10:35:26.317: D/MainCityAdapter(3386): getView 6 null
07-14 10:35:26.317: D/MainCityAdapter(3386): getView 7 null
07-14 10:35:26.317: D/MainCityAdapter(3386): getView 8 null
我的getView代码
public View getView(final int position, View convertView, ViewGroup parent)
{
Log.d(TAG, "getView " + position + " " + convertView); ViewHolder holder = null; if (convertView == null)
{
holder = new ViewHolder();
convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item, null);
holder.cityName = (TextView) convertView.findViewById(R.id.text_website_name); convertView.setTag(holder);
} else
{
holder = (ViewHolder) convertView.getTag();
}
return convertView;

解决方案 »

  1.   

    不是android 的bug,因为我别的程序不会出现这样的问题,
      

  2.   

    你这个是写在baseAdapter里面吧?
    基本setAdapter要加载一次的
      

  3.   

    Adapter是一种智能的实现方式,他可以重用已有的资源,通过适当的重绘来节约资源和提高系统的响应。当getView()被调用两次,不一定是程序的问题,在大多数的情况下,可能是Android触发了页面重绘的需求而发生的,所以不一定是Bug。例如ListView的数据量比较少,但是又有带ProgressDialog分页显示的代码实现,这个时候当第一页不足以满屏显示时,就触发了第二次的重绘要求。