java.lang.NullPointerException at android.widget.ArrayAdapter.init(ArrayAdapter.java)

你。 提交于 2020-01-03 17:16:09

问题


lang.NullPointerException android.widget.ArrayAdapter.init(ArrayAdapter.java) just am adding Arraylist values into customAdapter class and setting that values into listview see below code helpm me

thanks

private void fetchCallLogsDetails(String selectedId) {
        this.SelectedLogId = selectedId;
        new FetchCallLogDetailsAsyncTask() {
            protected void onPostExecute(Boolean result) {

                if (mCallLogModel.getmPhoto() != null) {
                    mCallLogPhoto.setImageBitmap(mCallLogModel.getmPhoto());
                }

                mCallLogDetailName.setText(mCallLogModel.getmName());
                mCallLogDetailNumber.setText(mCallLogModel.getmNumber());

                mCallLogDetailName.setTextSize(12);
                mCallLogDetailNumber.setTextSize(10);

                mLogAuditUtilList = mCallLogModel.getmLogAuditUtilList();
                if (mLogAuditUtilList != null) {
                    mCallLogAuditArrayAdapter = new CallLogAuditArrayAdapter(
                            getActivity(), R.id.details_audit_log_list,
                            mLogAuditUtilList);

                    mAuditListView.setAdapter(mCallLogAuditArrayAdapter);
                }

            };
        }.execute("");
    }
    class FetchCallLogDetailsAsyncTask extends
            AsyncTask<String, Integer, Boolean> {
        @Override
        protected Boolean doInBackground(String... params) {
            // reading call logs from contentReslover
            mCallLogUtil = CallLogUtil.newInstance(mconContentResolver);
            mCallLogModel = mCallLogUtil.selectedLogDetails(SelectedLogId);
            return false;
        }

    }



customeAdapter class
-------------------------

public class CallLogAuditArrayAdapter extends ArrayAdapter<LogAuditUtil> {
    private LayoutInflater minflater;
    private ImageView mCallTypeImage;

    public CallLogAuditArrayAdapter(Context context, int textViewResourceId,
            List<LogAuditUtil> objects) {
        super(context, textViewResourceId, objects);

        minflater = LayoutInflater.from(context);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        final LogAuditUtil mLogAuditUtil = this.getItem(position);

        convertView = minflater.inflate(R.layout.call_logs_details_list_view,
                null);
        TextView mCallType = (TextView) convertView
                .findViewById(R.id.call_logs_details_list_view_type_id);
        TextView mDetailsDate = (TextView) convertView
                .findViewById(R.id.call_logs_details_list_view_date_id);
        mCallTypeImage = (ImageView) convertView
                .findViewById(R.id.call_logs_details_list_view_type_image_id);

        TextView mCallDuration = (TextView) convertView
                .findViewById(R.id.call_logs_details_list_view_call_duration_id);

        mCallType.setTextSize(12);
        mDetailsDate.setTextSize(10);
        mCallDuration.setTextSize(8);

        switch (Integer.parseInt(mLogAuditUtil.getmAuditType())) {
        case 1:
            mCallType.setText(R.string.text_incoming_call);
            mCallTypeImage.setImageResource(R.drawable.incoming_call);
            break;

        case 2:
            mCallTypeImage.setImageResource(R.drawable.outgoing_call);
            mCallType.setText(R.string.text_outgoing_call);
            break;

        case 3:
            mCallTypeImage.setImageResource(R.drawable.missed_call);
            mCallType.setText(R.string.text_missed_call);
            break;
        }

        mDetailsDate.setText(mLogAuditUtil.getmAuditDate());
        mCallDuration.setText(mLogAuditUtil.getmAuditDuration());
        return convertView;
    }

}

when am runing this code am getting blow errors in catlog

E/AndroidRuntime(3047): FATAL EXCEPTION: main
06-07 19:58:56.257: E/AndroidRuntime(3047): java.lang.NullPointerException
06-07 19:58:56.257: E/AndroidRuntime(3047):     at android.widget.ArrayAdapter.init(ArrayAdapter.java:310)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:153)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at com.movirtu.contactsUtil.CallLogsArrayAdapter.<init>(CallLogsArrayAdapter.java:30)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at com.movirtu.fragments.CallLogsFragment$2.onPostExecute(CallLogsFragment.java:88)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at com.movirtu.fragments.CallLogsFragment$2.onPostExecute(CallLogsFragment.java:1)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at android.os.AsyncTask.finish(AsyncTask.java:602)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at android.os.AsyncTask.access$600(AsyncTask.java:156)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at android.os.Looper.loop(Looper.java:137)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at android.app.ActivityThread.main(ActivityThread.java:4340)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at java.lang.reflect.Method.invokeNative(Native Method)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at java.lang.reflect.Method.invoke(Method.java:511)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-07 19:58:56.257: E/AndroidRuntime(3047):     at dalvik.system.NativeStart.main(Native Method)
06-07 19:58:58.917: I/Process(3047): Sending signal. PID: 3047 SIG: 9

回答1:


This issue is caused by the fact that the getActivity() is returning null on the time you're creating the Adapter:

 new CallLogAuditArrayAdapter(getActivity(), R.id.details_audit_log_list, mLogAuditUtilList);

This can happen if the Activity is not yet attached to the fragment, or it has been detached. To solve it you could either ensure that the method fetchCallLogsDetails is only called under a valid state of attached activity OR you could ignore the call if getActivity() == null or getActivity.isFinishing().



来源:https://stackoverflow.com/questions/16986954/java-lang-nullpointerexception-at-android-widget-arrayadapter-initarrayadapter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!