我正在使用自定义适配器来显示列表视图,但不幸的是,当我滚动它显示空对象引用。列表视图滚动自定义适配器上显示错误
我看了以前的问题,但没有任何工作anysuggestions?
截图:
[此处输入图像的描述] [1]
09-09 13:39:53.949 3111-3111/com.aug22.avinashchintareddy.ecommerce E/AndroidRuntime:致命异常:主要是 进程:com.aug22.avinashchintareddy.ecommerce,PID:3111 java.lang.NullPointerException:尝试调用空对象引用虚拟方法'void android.widget.TextView.setText(java.lang.CharSequence)' at com.aug22.avinashchintareddy.ecommerce.adapters.ProductAdapt.getView(ProductAdapt.java:79) at android.widget.AbsListView.obtainView(AbsListView.java:2346) at android.widget.ListView.makeAndAddView(ListView.java:1875) at android.widget.ListView.fillDown(ListView.java:702) at android.widget.ListView.fillGap(ListView.java:666) 在android.widget.AbsListView.trackMotionScroll(AbsListView.java:5029) 在android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3424) 在机器人。 widget.AbsListView.onTouchMove(AbsListView.java:3820) at android.widget.AbsListView.onTouchEvent(AbsListView.java:3651) at android.view.View .dispatchTouchEvent(View.java:9294) 在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2547) 在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2240) 在android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2553) 在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) 在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) 在android.view.ViewGroup.dispatchTouchEvent(的ViewGroup .java:2254) at android.view.ViewGroup android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) 。 dispatchTouchEvent(ViewGroup.java:2254) 在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) 在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) 在android.view.ViewGroup.dispatchTransformedTouchEvent( ViewGroup.java:2553) 在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) 在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) 在android.view.ViewGroup.dispatchTouchEvent(ViewGroup中。 java:2254) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGr oup.dispatchTouchEvent(ViewGroup.java:2254) 在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) 在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) 在android.view.ViewGroup。 dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup。Java的:2254)
这是错误日志
我的适配器类 输入代码在这里
在侧面得到视图中添加日志,检查发生了什么事,但不幸的是,当曾经的列表滚动渲染元素显示但不是所有的元素 也可以看到在获取视图大小时添加的日志。 适配器类。
public class ProductAdapt
extends BaseAdapter {
List
productAcessorList ;
Context context;
LayoutInflater layoutInflater;
setClicker clicker;
public ProductAdapt(List
productAcessorList, Context context) {
this.productAcessorList = productAcessorList;
this.context = context;
layoutInflater=(LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
Log.i("List size",""+
productAcessorList.size());
return productAcessorList.size();
}
@Override
public Object
getItem(int i) {
return i;
}
@Override
public long getItemId(int i) {
return i;
}
public static class Handler{
TextView tx_prodname,
tx_proddesc,tx_proid;
ImageView img_prd;
}
@Override
public View getView(final int i,
View myview, ViewGroup viewGroup) {
Handler handler = new Handler();
if(myview == null){
myview=layoutInflater.inflate
(R.layout.list_prod,viewGroup,false);
handler.tx_prodname=(TextView)
myview.findViewById(R.id.txt_categid);
handler.tx_proddesc=(TextView)
myview.findViewById(R.id.txt_descid);
handler.tx_proid=(TextView)
myview.findViewById(R.id.txt_idi);
handler.img_prd=myview.
findViewById(R.id.img_view);
myview.setTag(handler);
}
else
{
myview.getTag();
}
Log.i("find fault",""+
productAcessorList.get(i).getProduct());
handler.tx_prodname.
setText(""+productAcessorList.get(i).getProduct());
handler.tx_proddesc.
setText(""+productAcessorList.get(i).getDescrip());
handler.tx_proid.
setText(""+productAcessorList.get(i).getId());
Picasso.with(context).
load(""+productAcessorList.
get(i).getImage()).
into(handler.img_prd);
myview.
setOnClickListener
(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(clicker!=null){
clicker.gotClick(view,i);
}
}
});
return myview;
}
public void getClicker
(setClicker clicker){
this.clicker=clicker;
}
}
Plaese将您的错误日志发布为文本而不是图片并正确地设置您的代码。 –