2016-01-22 153 views
-2

我尝试添加的onClick这个按钮,然后在数据库中创建接触notifyDataSetChanged()NullPointerException异常

这里是代码我尝试将它添加到main_fragment

final Button addBtn = (Button) view.findViewById(R.id.btnadd); 
    addBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Uri imageUri = Uri.parse("android.resource://org.intracode.contactmanager/drawable/no_user_logo.png"); 
      import_fragment.Contact contact = new import_fragment.Contact(dbHandler.getContactsCount(), String.valueOf(nametxt.getText()), String.valueOf(phoneTxt.getText()), String.valueOf(emailTxt.getText()), String.valueOf(addressTxt.getText()), imageUri); 
      if (!contactExists(contact)) { 
       dbHandler.createContact(contact); 
       Contacts.add(contact); 
       contactAdapter.notifyDataSetChanged(); // Error in this line 
       Toast.makeText(getActivity().getApplicationContext(), String.valueOf(nametxt.getText()) + " has been added to your Contacts!", Toast.LENGTH_SHORT).show(); 
       return; 
      } 
      Toast.makeText(getActivity().getApplicationContext(), String.valueOf(nametxt.getText()) + " already exists. Please use a different name.", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

,当我在我的应用程序按下此按钮,“应用程序已停止工作”

这里是我的logcat

01-22 08:31:04.014 29398-29398/com.al3almya.users.al3almya E/AndroidRuntime: FATAL EXCEPTION: main 
                     Process: com.al3almya.users.al3almya, PID: 29398 
                     java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ArrayAdapter.notifyDataSetChanged()' on a null object reference 
                      at com.al3almya.users.al3almya.main_fragment$1.onClick(main_fragment.java:77) 
                      at android.view.View.performClick(View.java:4848) 
                      at android.view.View$PerformClick.run(View.java:20262) 
                      at android.os.Handler.handleCallback(Handler.java:815) 
                      at android.os.Handler.dispatchMessage(Handler.java:104) 
                      at android.os.Looper.loop(Looper.java:194) 
                      at android.app.ActivityThread.main(ActivityThread.java:5637) 
                      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:960) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
+0

我不知道根本原因。尝试做空检查是否(contactAdapter!= null)contactAdapter.notifyDataSetChanged();在初始化适配器的地方发布更多代码。 – Raghavendra

+1

现在有一天SO充满了负面评价,大声笑:) – Gunaseelan

+1

你还没有初始化'contactAdapter',它是空的 –

回答

0

contactAdapter未初始化(contactAdater为null)或者适配器设置为空的对象。

确保您已初始化所有变量。否则尝试运行dubugger。

0

看来日在变量contactAdapter尚未设置。