查看Holder不能为Null是错误信息

问题描述 投票:-3回答:1

我正在尝试构建和天气应用程序和菜单列表适配器类我收到错误消息说:

在View Holder中查看Holder()不能为空。

这是我想要使用Android Studio构建应用程序的Android代码

import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.FrameLayout;
import android.widget.TextView;
import java.util.ArrayList;
import com.weather.queensland.weather.pojo.MenuListPojo;

public class MenuListAdapter extends ArrayAdapter<MenuListPojo>
{
  Activity activity;
  private ArrayList<MenuListPojo> dataSet;
  private int lastPosition = -1;

  @SuppressLint("ResourceType")
  public MenuListAdapter(ArrayList<MenuListPojo> paramArrayList, Activity paramActivity)
  {
    super(paramActivity, 2131296289, paramArrayList);
    this.dataSet = paramArrayList;
    this.activity = paramActivity;
  }

  @SuppressLint("ResourceType")
  public View getView(int paramInt, View paramView, ViewGroup paramViewGroup)
  {
    MenuListPojo localMenuListPojo = (MenuListPojo)getItem(paramInt);
    ViewHolder localViewHolder;
    if (paramView == null)
    {
      localViewHolder = new ViewHolder(null);
      paramView = LayoutInflater.from(getContext()).inflate(2131296289, paramViewGroup, false);
      localViewHolder.nav_new_title = ((TextView)paramView.findViewById(2131165332));
      localViewHolder.nav_new = ((FrameLayout)paramView.findViewById(2131165321));
      paramView.setTag(localViewHolder);
    }
    for (paramViewGroup = localViewHolder;; paramViewGroup = (ViewHolder)paramView.getTag())
    {
      this.lastPosition = paramInt;
      paramViewGroup.nav_new_title.setText(localMenuListPojo.getTitle());
      paramViewGroup.nav_new.setOnClickListener(new View.OnClickListener()
      {
        public void onClick(View paramAnonymousView)
        {
          int i = ((Integer)paramAnonymousView.getTag()).intValue();
          paramAnonymousView = (MenuListPojo)MenuListAdapter.this.getItem(i);
          ((ForecastWeatherActivity)MenuListAdapter.this.activity).callOnMenuItemSelection(paramAnonymousView.getLink());
        }
      });
      paramViewGroup.nav_new.setTag(Integer.valueOf(paramInt));
      return paramView;
    }
  }

  private static class ViewHolder
  {
    FrameLayout nav_new;
    TextView nav_new_title;
  }
}
android
1个回答
0
投票

在你的getView()函数你的视图持有者默认构造函数应该是

localViewHolder = new ViewHolder();

不是这个

localViewHolder = new ViewHolder(null);

这使它parameterized constructor和你作为参数值null传递

© www.soinside.com 2019 - 2024. All rights reserved.