Android 视图持有者不能为Null是错误消息
我正在尝试构建和天气应用程序,在菜单列表适配器类中,我收到错误消息,消息如下: 视图持有者中的视图持有者()不能为空 这是我正在使用Android Studio构建应用程序的Android代码Android 视图持有者不能为Null是错误消息,android,Android,我正在尝试构建和天气应用程序,在菜单列表适配器类中,我收到错误消息,消息如下: 视图持有者中的视图持有者()不能为空 这是我正在使用Android Studio构建应用程序的Android代码 import android.annotation.SuppressLint; import android.app.Activity; import android.view.LayoutInflater; import android.view.View; import android.view.Vi
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.annotation.SuppressLint;
导入android.app.Activity;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.FrameLayout;
导入android.widget.TextView;
导入java.util.ArrayList;
进口com.weather.queensland.weather.pojo.MenuListPojo;
公共类MenuListAdapter扩展了ArrayAdapter
{
活动;
私有ArrayList数据集;
private int lastPosition=-1;
@SuppressLint(“资源类型”)
public MenuListAdapter(ArrayList paramArrayList,Activity paramActivity)
{
超级(paramActivity,2131296289,paramArrayList);
this.dataSet=paramArrayList;
this.activity=paramActivity;
}
@SuppressLint(“资源类型”)
公共视图getView(int-paramInt、View-paramView、ViewGroup-paramViewGroup)
{
MenuListPojo localMenuListPojo=(MenuListPojo)getItem(paramInt);
视图持有者localViewHolder;
if(paramView==null)
{
localViewHolder=新的ViewHolder(空);
paramView=LayoutInflater.from(getContext()).flate(2131296289,paramViewGroup,false);
localViewHolder.nav_new_title=((TextView)paramView.findViewById(2131165332));
localViewHolder.nav_new=((FrameLayout)paramView.findViewById(2131165321));
setTag(localViewHolder);
}
for(paramViewGroup=localViewHolder;;paramViewGroup=(ViewHolder)paramView.getTag()
{
this.lastPosition=paramit;
paramViewGroup.nav_new_title.setText(localMenuListPojo.getTitle());
paramViewGroup.nav_new.setOnClickListener(new View.OnClickListener())
{
public void onClick(视图参数匿名视图)
{
int i=((整数)paranamonymousview.getTag()).intValue();
paramAnonymousView=(MenuListPojo)MenuListAdapter.this.getItem(i);
((ForecastWeatherActivity)MenuListAdapter.this.activity).callOnMenuItemSelection(paranamonymousView.getLink());
}
});
paramViewGroup.nav_new.setTag(Integer.valueOf(paramInt));
返回参数视图;
}
}
私有静态类视图持有者
{
框架布局导航新;
文本视图导航新标题;
}
}
在getView()
函数中,视图持有者的默认构造函数应该是
localViewHolder = new ViewHolder();
不是这个
localViewHolder = new ViewHolder(null);
这使得它成为
参数化构造函数
,并作为参数值传递null
localViewHolder=newviewholder(null)
–删除此处的null
参数。您的ViewHolder
类没有任何接受参数的构造函数。请向我们显示完整错误。Android Studio足够智能,可以向您显示异常发生在哪一行。你必须按照建议去做。