尝试将联系人对象添加到自定义列表时,联系人对象上出现空指针异常

时间:2016-04-07 15:56:38

标签: android

这里发生的事情是,当实例化联系对象时,它显示为空对象。此外,我已经检查了JSON数据,它确认了,所以直到文本初始化它似乎工作。 PLS帮助

这是异常日志

Process: com.compscitutorials.basigarcia.navigationdrawervideotutorial, PID:  9369
java.lang.RuntimeException: Unable to start activity     
ComponentInfo{com.compscitutorials.basigarcia.navigationdrawervideotutorial/mini_project_3.ama.TeacherHome}: java.lang.NullPointerException: Attempt to invoke virtual method 'void 
mini_project_3.ama.CustomListAdapter.add(mini_project_3.ama.contacts)' on a null object reference
                                                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                                                                             at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                                                                             at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                                             at android.os.Looper.loop(Looper.java:148)
                                                                                                             at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                                                          Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void mini_project_3.ama.CustomListAdapter.add(mini_project_3.ama.contacts)' on a null object reference
                                                                                                             at mini_project_3.ama.MarkAttendance.onCreateView(MarkAttendance.java:69)
                                                                                                             at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962)
                                                                                                             at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
                                                                                                             at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248)
                                                                                                             at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
                                                                                                             at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613)
                                                                                                             at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:330)
                                                                                                             at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547)
                                                                                                             at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)
                                                                                                             at android.app.Activity.performStart(Activity.java:6253)
                                                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
                                                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                                                                             at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                                                                             at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                                             at android.os.Looper.loop(Looper.java:148) 
                                                                                                             at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

MarkAttendance.java

package mini_project_3.ama;


import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.text.SimpleDateFormat;
import java.util.Calendar;


/**
 * A simple {@link Fragment} subclass.
 */
    public class MarkAttendance extends Fragment {


ListView list;
String data;
CustomListAdapter ca;
JSONArray ja;
JSONObject jo;
contacts c;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View v = inflater.inflate(R.layout.mark_attendance, container, false);
    Context context = getContext();
    CustomListAdapter adapter = new     CustomListAdapter(getActivity(),R.layout.malist);
    list = (ListView) v.findViewById(R.id.listview_custom);
    list.setAdapter(adapter);
    data = getArguments().getString("data");

    Calendar cal = Calendar.getInstance();
    SimpleDateFormat s = new SimpleDateFormat("dd/MM/yyyy");
    String d = s.format(cal.getTime());

    //Toast.makeText(getActivity(),""+data,Toast.LENGTH_LONG).show();
    try {
        jo=new JSONObject(data);
        ja=jo.getJSONArray("server_response");

        int count=0;
        String lecno,lectype,subcode,batchid;

        while(count<ja.length())
        {
            JSONObject jo1=ja.getJSONObject(count);
            lecno=jo1.getString("lec_no");
            lectype=jo1.getString("lec_type");
            subcode=jo1.getString("sub_code");
            batchid=jo1.getString("batch_id");
            Toast.makeText(getActivity(),""+d+lecno+lectype+subcode+batchid,Toast.LENGTH_LONG).show();

            c = new contacts(d,lecno,lectype,subcode,batchid);

            ca.add(c);
            count++;

        }

    } catch (JSONException e) {
        e.printStackTrace();
    }

    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            String bid= ca.getListBatch(position);
            String method="getrno";

            Toast.makeText(getActivity(),""+bid,Toast.LENGTH_LONG).show();


        }
    });

    return v;
  }
}

1 个答案:

答案 0 :(得分:0)

看起来您已声明CustomListAdapter ca;并且此变量从未实例化,但您尝试将值ca.add(c);添加到其中。

尝试更改

ca.add(c);

adapter.add(c);