Android 自定义列表适配器不工作
我正在定制Android listView。下面是我的custom适配器的代码Android 自定义列表适配器不工作,android,listview,Android,Listview,我正在定制Android listView。下面是我的custom适配器的代码 public class MyAdapter extends BaseAdapter { Context context; ArrayList<menu_itemss>list; String[] textArray; int[] images; menu_itemss m; public class menu_itemss { public String te
public class MyAdapter extends BaseAdapter {
Context context;
ArrayList<menu_itemss>list;
String[] textArray;
int[] images;
menu_itemss m;
public class menu_itemss
{
public String text;
public int image;
public menu_itemss(String text,int images)
{
this.text=text;
this.image=images;
}
}
public class ViewHolders
{
ImageView imageView;
TextView textView;
public ViewHolders(View view)
{
textView=(TextView)view.findViewById(R.id.textView4);
imageView=(ImageView)view.findViewById(R.id.imageView);
}
}
public MyAdapter(Context contexts,String[] arr)
{
list=new ArrayList<menu_itemss>();
textArray=arr;
this.context=contexts;
images= new int[]{R.drawable.logo, R.drawable.logo, R.drawable.logo,
R.drawable.logo};
for (int i=0;i<textArray.length;i++)
{
m=new menu_itemss(textArray[i],images[i]);
list.add(m);
}
}
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row=convertView;
ViewHolders holder = null;
if (row==null)
{
LayoutInflater inflater=(LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.list,parent,false);
holder=new ViewHolders(row);
row.setTag(holder);
}
else
{
holder=(ViewHolders)row.getTag();
}
menu_itemss item=list.get(position);
holder.imageView.setImageResource(item.image);
holder.textView.setText(item.text);
return row;
}
}
当我构建代码时,Android studio不会显示任何错误,但当我在Android设备上运行此代码时,会显示以下错误
Unfortunately ! your application stopped working!
日志类别:
FATAL EXCEPTION: main
Process: com.example.mashood.muftiattaullahmultanicom, PID: 27743
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
at com.example.mashood.muftiattaullahmultanicom.MyAdapter$ViewHolders.<init>(MyAdapter.java:48)
at com.example.mashood.muftiattaullahmultanicom.MyAdapter.getView(MyAdapter.java:95)
at android.widget.AbsListView.obtainView(AbsListView.java:2402)
at android.widget.ListView.makeAndAddView(ListView.java:1891)
at android.widget.ListView.fillDown(ListView.java:713)
at android.widget.ListView.fillFromTop(ListView.java:779)
at android.widget.ListView.layoutChildren(ListView.java:1699)
at android.widget.AbsListView.onLayout(AbsListView.java:2206)
at android.view.View.layout(View.java:16075)
at android.view.ViewGroup.layout(ViewGroup.java:5300)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1077)
at android.view.View.layout(View.java:16075)
at android.view.ViewGroup.layout(ViewGroup.java:5300)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:16075)
at android.view.ViewGroup.layout(ViewGroup.java:5300)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:16075)
at android.view.ViewGroup.layout(ViewGroup.java:5300)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:16075)
at android.view.ViewGroup.layout(ViewGroup.java:5300)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:16075)
at android.view.ViewGroup.layout(ViewGroup.java:5300)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:16075)
at android.view.ViewGroup.layout(ViewGroup.java:5300)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2119)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1873)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1073)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5988)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5910)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
致命异常:main
流程:com.example.mashood.muftiattaullahmultanicom,PID:27743
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.view.view android.view.view.findViewById(int)”
位于com.example.mashood.muftiattaullahmultanicom.MyAdapter$ViewHolders。(MyAdapter.java:48)
位于com.example.mashood.muftiattaullahmultanicom.MyAdapter.getView(MyAdapter.java:95)
在android.widget.AbsListView.obtainView(AbsListView.java:2402)
位于android.widget.ListView.makeAndAddView(ListView.java:1891)
在android.widget.ListView.fillDown(ListView.java:713)中
位于android.widget.ListView.fillFromTop(ListView.java:779)
位于android.widget.ListView.layoutChildren(ListView.java:1699)
在android.widget.AbsListView.onLayout(AbsListView.java:2206)
位于android.view.view.layout(view.java:16075)
位于android.view.ViewGroup.layout(ViewGroup.java:5300)
在android.widget.RelativeLayout.onLayout(RelativeLayout.java:1077)上
位于android.view.view.layout(view.java:16075)
位于android.view.ViewGroup.layout(ViewGroup.java:5300)
位于android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
位于android.widget.FrameLayout.onLayout(FrameLayout.java:514)
位于android.view.view.layout(view.java:16075)
位于android.view.ViewGroup.layout(ViewGroup.java:5300)
位于android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
位于android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
位于android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
位于android.view.view.layout(view.java:16075)
位于android.view.ViewGroup.layout(ViewGroup.java:5300)
位于android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
位于android.widget.FrameLayout.onLayout(FrameLayout.java:514)
位于android.view.view.layout(view.java:16075)
位于android.view.ViewGroup.layout(ViewGroup.java:5300)
位于android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
位于android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
位于android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
位于android.view.view.layout(view.java:16075)
位于android.view.ViewGroup.layout(ViewGroup.java:5300)
位于android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
位于android.widget.FrameLayout.onLayout(FrameLayout.java:514)
位于android.view.view.layout(view.java:16075)
FATAL EXCEPTION: main
Process: com.example.mashood.muftiattaullahmultanicom, PID: 27743
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
at com.example.mashood.muftiattaullahmultanicom.MyAdapter$ViewHolders.<init>(MyAdapter.java:48)
at com.example.mashood.muftiattaullahmultanicom.MyAdapter.getView(MyAdapter.java:95)
at android.widget.AbsListView.obtainView(AbsListView.java:2402)
at android.widget.ListView.makeAndAddView(ListView.java:1891)
at android.widget.ListView.fillDown(ListView.java:713)
at android.widget.ListView.fillFromTop(ListView.java:779)
at android.widget.ListView.layoutChildren(ListView.java:1699)
at android.widget.AbsListView.onLayout(AbsListView.java:2206)
at android.view.View.layout(View.java:16075)
at android.view.ViewGroup.layout(ViewGroup.java:5300)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1077)
at android.view.View.layout(View.java:16075)
at android.view.ViewGroup.layout(ViewGroup.java:5300)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:16075)
at android.view.ViewGroup.layout(ViewGroup.java:5300)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:16075)
at android.view.ViewGroup.layout(ViewGroup.java:5300)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:16075)
at android.view.ViewGroup.layout(ViewGroup.java:5300)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:16075)
at android.view.ViewGroup.layout(ViewGroup.java:5300)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:16075)
at android.view.ViewGroup.layout(ViewGroup.java:5300)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2119)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1873)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1073)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5988)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5910)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
row = inflater.inflate(R.layout.list,parent,false);