Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么getView方法会给出null指针异常?_Android - Fatal编程技术网

Android 为什么getView方法会给出null指针异常?

Android 为什么getView方法会给出null指针异常?,android,Android,我正在制作一个listview,它有两个部分,两个部分都有不同的xml,但我的getView方法不起作用,出现以下异常:- 10-03 14:34:29.421: E/AndroidRuntime(11029): FATAL EXCEPTION: main 10-03 14:34:29.421: E/AndroidRuntime(11029): java.lang.NullPointerException 10-03 14:34:29.421: E/AndroidRuntime(11029):

我正在制作一个listview,它有两个部分,两个部分都有不同的xml,但我的getView方法不起作用,出现以下异常:-

10-03 14:34:29.421: E/AndroidRuntime(11029): FATAL EXCEPTION: main
10-03 14:34:29.421: E/AndroidRuntime(11029): java.lang.NullPointerException
10-03 14:34:29.421: E/AndroidRuntime(11029):    at    android.widget.AbsListView.obtainView(AbsListView.java:1594)
 10-03 14:34:29.421: E/AndroidRuntime(11029):   at an droid.widget.ListView.makeAndAddView(ListView.java:1782)
 10-03 14:34:29.421: E/AndroidRuntime(11029):   at android.widget.ListView.fillDown(ListView.java:705)
10-03 14:34:29.421: E/AndroidRuntime(11029):    at android.widget.ListView.fillFromTop(ListView.java:762)
 10-03 14:34:29.421: E/AndroidRuntime(11029):   at android.widget.ListView.layoutChildren(ListView.java:1619)
 10-03 14:34:29.421: E/AndroidRuntime(11029):   at android.widget.AbsListView.onLayout(AbsListView.java:1422)
 10-03 14:34:29.421: E/AndroidRuntime(11029):   at android.view.View.layout(View.java:7175)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at android.widget.RelativeLayout.onLayout(RelativeLayout.java:912)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at android.view.View.layout(View.java:7175)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
   10-03 14:34:29.421: E/AndroidRuntime(11029):     at android.view.View.layout(View.java:7175)
   10-03 14:34:29.421: E/AndroidRuntime(11029):     at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
   10-03 14:34:29.421: E/AndroidRuntime(11029):     at android.view.View.layout(View.java:7175)
   10-03 14:34:29.421: E/AndroidRuntime(11029):     at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
   10-03 14:34:29.421: E/AndroidRuntime(11029):     at android.view.View.layout(View.java:7175)
   10-03 14:34:29.421: E/AndroidRuntime(11029):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at android.view.View.layout(View.java:7175)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at android.view.View.layout(View.java:7175)
   10-03 14:34:29.421: E/AndroidRuntime(11029):     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:912)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at android.view.View.layout(View.java:7175)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at andr oid.widget.FrameLayout.onLayout(FrameLayout.java:338)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at android.view.View.layout(View.java:7175)
   10-03 14:34:29.421: E/AndroidRuntime(11029):     at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
   10-03 14:34:29.421: E/AndroidRuntime(11029):     at android.view.View.layout(View.java:7175)
   10-03 14:34:29.421: E/AndroidRuntime(11029):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1146)
   10-03 14:34:29.421: E/AndroidRuntime(11029):     at  android.view.ViewRoot.handleMessage(ViewRoot.java:1865)
   10-03 14:34:29.421: E/AndroidRuntime(11029):     at android.os.Handler.dispatchMessage(Handler.java:99)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at android.os.Looper.loop(Looper.java:130)
   10-03 14:34:29.421: E/AndroidRuntime(11029):     at android.app.ActivityThread.main(ActivityThread.java:3687)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at java.lang.reflect.Method.invokeNative(Native Method)
   10-03 14:34:29.421: E/AndroidRuntime(11029):     at java.lang.reflect.Method.invoke(Method.java:507)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
  10-03 14:34:29.421: E/AndroidRuntime(11029):  at dalvik.system.NativeStart.main(Native Method)
我正在使用以下代码:-

@Override
public View getView(final int position, View convertView, ViewGroup parent) {

    ViewHolder holder = null;
    if(issection)
    {
        issection=false;
        convertView=null;   
    }

    if (convertView == null) {

        final MyJobListModle objitem = data.get(position);

        if (objitem != null && objitem.getIssection()!=null && !objitem.getIssection().equals("")) {


            if (objitem.getIssection().equalsIgnoreCase("true")) {

                convertView = objinflater.inflate(R.layout.listviewsection,
                        null);
                holder = new ViewHolder();
                issection=true;
                convertView.setOnClickListener(null);
                convertView.setOnLongClickListener(null);
                convertView.setLongClickable(false);

                final TextView sectionView = (TextView) convertView
                        .findViewById(R.id.txtsection);
                sectionView.setText(objitem.getHeader_title());
            }

        }
        else
        {
        convertView = objinflater.inflate(R.layout.postjobrow, null);
        holder = new ViewHolder();

        holder.objjobname = (TextView) convertView.findViewById(R.id.textjob);
        holder.objbidalerts = (TextView) convertView
                .findViewById(R.id.textalert);
        holder.objclick =(RelativeLayout)convertView.findViewById(R.id.textalertclick);
        holder.bidalerttext=(TextView)convertView.findViewById(R.id.alerttext);
        holder.objarrowimageView = (ImageView) convertView
                .findViewById(R.id.imagearrow);
        convertView.setTag(holder);

    }
    }else {

        holder = (ViewHolder) convertView.getTag();
    }


    /*----  Handle click on listview item   ----*/
    if(holder!= null && holder.objarrowimageView!=null)
    {
    holder.objarrowimageView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            String jobcode = data.get(position).getId();
            Bundle objbundle = new Bundle();
            Intent objintent = new Intent(objactivity,EditPostJobSection.class);
            objbundle.putString("jobid",jobcode);
            objbundle.putString("from","myjobadapter");
            objbundle.putString("createdAt",data.get(position).getCreated());
            objintent.putExtras(objbundle);
            objactivity.startActivity(objintent);
        }
    });
    }
    if(holder!= null && holder.objclick!=null)
    {
    holder.objclick.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            String bidcount = data.get(position).getBid_count();
            if(!bidcount.equals("0"))
            {
                System.out.println("ok");
                ArrayList<JobBidAlertModle> objjobbidalertlist = data.get(position).getObjbidalertmodlelist();  
                Bundle objbunlde = new Bundle();
                Intent objintent = new Intent(objactivity,MyJobBidAlerts.class);
                objbunlde.putSerializable("objbidalertlist", objjobbidalertlist);
                if(data!=null && data.size()>position)
                {
                    objbunlde.putString("title",data.get(position).getTitle()); 
                }
                objbunlde.putString("createdAt",data.get(position).getCreated());
                objbunlde.putString("from","myjobadapter");
                if(data!=null && data.size()!=0)
                    {
                    objbunlde.putString("lat",data.get(position).getLocationlat());
                    objbunlde.putString("longi",data.get(position).getLocationlongi());
                    }
                objintent.putExtras(objbunlde);
                objactivity.startActivity(objintent);
            }
            if(bidcount.equals("0"))
            {

            }


        }
    });

    }

    if(holder!= null && holder.objjobname!=null && holder.objbidalerts!=null )
    {
    holder.objjobname.setText(data.get(position).getTitle());
    String bidcount = data.get(position).getBid_count();
    if(bidcount.equals("0"))
    {
        holder.objbidalerts.setVisibility(View.INVISIBLE);
    }
    else
    {
        holder.objbidalerts.setVisibility(View.VISIBLE);
        holder.objbidalerts.setText(bidcount);  
    }
    }


    return convertView;
}
@覆盖
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
ViewHolder=null;
如果(i节)
{
issection=false;
convertView=null;
}
if(convertView==null){
最终MyJobListModle objitem=data.get(位置);
如果(objitem!=null&&objitem.getIssection()!=null&&objitem.getIssection().equals(“”){
if(objitem.getIssection().equalsIgnoreCase(“true”)){
convertView=objinflater.充气(R.layout.LISTVIEW部分,
无效);
holder=新的ViewHolder();
issection=true;
convertView.setOnClickListener(null);
convertView.setOnLongClickListener(null);
convertView.setLongClickable(假);
最终文本视图截面视图=(文本视图)转换视图
.findViewById(R.id.TXT部分);
sectionView.setText(objitem.getHeader_title());
}
}
其他的
{
convertView=objinflater.充气(R.layout.postjobrow,null);
holder=新的ViewHolder();
holder.objjobname=(TextView)convertView.findViewById(R.id.textjob);
holder.objbidalerts=(TextView)convertView
.findViewById(R.id.textalert);
holder.objclick=(RelativeLayout)convertView.findViewById(R.id.textalertclick);
holder.bidalerttext=(TextView)convertView.findViewById(R.id.alerttext);
holder.objarrowimageView=(ImageView)convertView
.findViewById(R.id.imagearrow);
convertView.setTag(支架);
}
}否则{
holder=(ViewHolder)convertView.getTag();
}
/*----处理单击列表视图项----*/
if(holder!=null&&holder.objarrowimageView!=null)
{
holder.objarrowimageView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串jobcode=data.get(position.getId();
Bundle objbundle=新Bundle();
Intent objintent=新的Intent(objactivity,EditPostJobSection.class);
putString(“作业ID”,作业代码);
putString(“from”,“myjobadapter”);
putString(“createdAt”,data.get(position.getCreated());
外放对象(objbundle);
客体性。星形触觉(客体);
}
});
}
if(holder!=null&&holder.objclick!=null)
{
holder.objclick.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串bidcount=data.get(position.getBid_count();
如果(!bidcount.equals(“0”))
{
System.out.println(“ok”);
ArrayList objjobbidalertlist=data.get(position.getObjbidalertmodlelist();
Bundle objbunlde=新Bundle();
Intent objintent=新的Intent(objactivity,MyJobBidAlerts.class);
objbunlde.putSerializable(“objbidalertlist”,objjobbidalertlist);
if(data!=null&&data.size()>position)
{
putString(“title”,data.get(position.getTitle());
}
objbunlde.putString(“createdAt”,data.get(position.getCreated());
putString(“from”,“myjobadapter”);
if(data!=null&&data.size()!=0)
{
objbunlde.putString(“lat”,data.get(position.getLocationlat());
putString(“longi”,data.get(position.getLocationlongi());
}
objintent.putExtras(objbunlde);
客体性。星形触觉(客体);
}
如果(bidcount.等于(“0”))
{
}
}
});
}
if(holder!=null&&holder.objjobname!=null&&holder.objbidalerts!=null)
{
holder.objjobname.setText(data.get(position.getTitle());
字符串bidcount=data.get(position.getBid_count();
如果(bidcount.等于(“0”))
{
holder.objbidalerts.setVisibility(View.INVISIBLE);
}
其他的
{
holder.objbidalerts.setVisibility(View.VISIBLE);
holder.objbidalerts.setText(bidcount);
}
}
返回视图;
}
当我执行空指针时,发生了错误。我无法解决确切的问题。
请任何人向我推荐。非常感谢

您可能没有在
listviewsection.xml
文件中定义id为
R.id.txtsection
TextView

您是否可以重新检查日志cat并查看您的包在日志cat中从哪一行开始。双击该线并告诉我们它指向哪条线。空指针异常是最常见的异常,当您尝试访问空变量时会出现。