string - Android: how do I use Save button click in one Activity to add a CardView item in Recyclerview Activity? -


i have ui screen (cardviewactivity) bunch of edittext lines data input user. when user done click "save" button on ui save string data input cardview added recyclerview list. when tried add save button reference (r.id.savebuttonrv) in recycler activity (listcontactsactivity), app crashed due button click.

listcontactsactivity  ... public class listcontactsactivity extends appcompatactivity {      private listcontactsadapter mcontactsadapter;      @override     protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);      final recyclerview  mrecyclerview;     ...     button savebutton = (button) findviewbyid(r.id.savebuttonrv);     // below line caused app crash npe     savebutton.setonclicklistener(new view.onclicklistener() {         @override         public void onclick(view v) {             contact contact = new contact("", "");             mcontactsadapter.additem(contact);             mrecyclerview.scrolltoposition(0);         }     });   cardviewactivity (for user input) ... public class cardviewactivity extends appcompatactivity {          private listeneredittext clisteneredittext;      ...      public void onclicksave(view v) {          int stringtodo = clisteneredittext.gettext().tostring().replace(" ", "").length();          else if (stringtodo > 0 && stringnotes1 == 0 && stringnotes2 == 0 &&             stringduedate == 0 && stringduetime ==0) {         clisteneredittext.requestfocus();         inputmethodmanager imm = (inputmethodmanager)                 getsystemservice(context.input_method_service);         imm.hidesoftinputfromwindow(clisteneredittext.getwindowtoken(), 0);         clisteneredittext.clearfocus();         button savebutton = (button)findviewbyid(r.id.savebuttonrv);         savebutton.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                // can reference contact, adapter , recyclerview                // here additem (the cardview string data)                 // reyclerview list?             }         });     } }   xml referencing savebuttonrv  <linearlayout  xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/cardviewtwobuttons" android:orientation="horizontal" >  <space     android:layout_width="0dp"     android:layout_height="match_parent"     android:layout_weight="14" />  <linearlayout     android:id="@+id/linearlayout4"     android:layout_margintop="1dp"     android:layout_width="0dp"     android:layout_height="wrap_content"     android:layout_weight="52"     style="?android:attr/borderlessbuttonstyle"     android:background="@drawable/rect_forbuttons">      <button         android:id="@+id/clearbutton"         android:text="clear"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_gravity="start|center"         android:textcolor="#ffffff"         android:textstyle="bold"         style="?android:attr/borderlessbuttonstyle"         android:textappearance="?android:attr/textappearancelarge"         android:background="@drawable/clearbutton_rounded"         android:drawablestart="@drawable/ic_clear_white_24dp"         android:drawableleft="@drawable/ic_clear_white_24dp"         android:paddingstart="2dp"         android:paddingleft="2dp"         android:paddingend="2dp"         android:paddingright="2dp"         android:layout_marginend="12dp"         android:layout_marginright="12dp"         android:layout_margintop="4dp"         android:layout_marginbottom="4dp"         android:onclick="onclickclear"         android:nextfocusright="@+id/savebuttonrv"  />      <button         android:id="@+id/savebuttonrv"         android:text="save"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_gravity="end|center"         android:textcolor="#ffffff"         android:textstyle="bold"         style="?android:attr/borderlessbuttonstyle"         android:textappearance="?android:attr/textappearancelarge"         android:background="@drawable/savebutton_rounded"         android:drawablestart="@drawable/ic_save_white_24dp"         android:drawableleft="@drawable/ic_save_white_24dp"         android:layout_marginstart="12dp"         android:layout_marginleft="12dp"         android:layout_margintop="4dp"         android:layout_marginbottom="4dp"         android:onclick="onclicksave"  />  </linearlayout>  <space     android:layout_width="0dp"     android:layout_height="match_parent"     android:layout_weight="14" /> 

logcat listcontactsactivity:

java.lang.runtimeexception: unable start activity componentinfo{com.example.jdw.seventhscreen/com.example.jdw.seventhscreen.listcontactsactivity}: java.lang.nullpointerexception                                                                                    @ android.app.activitythread.performlaunchactivity(activitythread.java:2059)                                                                                    @ android.app.activitythread.handlelaunchactivity(activitythread.java:2084)                                                                                    @ android.app.activitythread.access$600(activitythread.java:130)                                                                                    @ android.app.activitythread$h.handlemessage(activitythread.java:1195)                                                                                    @ android.os.handler.dispatchmessage(handler.java:99)                                                                                    @ android.os.looper.loop(looper.java:137)                                                                                    @ android.app.activitythread.main(activitythread.java:4745)                                                                                    @ java.lang.reflect.method.invokenative(native method)                                                                                    @ java.lang.reflect.method.invoke(method.java:511)                                                                                    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:786)                                                                                    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:553)                                                                                    @ dalvik.system.nativestart.main(native method)                                                                                 caused by: java.lang.nullpointerexception                                                                                    @ com.example.jdw.seventhscreen.listcontactsactivity.oncreate(listcontactsactivity.java:58)                                                                                    @ android.app.activity.performcreate(activity.java:5008)                                                                                    @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1079)                                                                                    @ android.app.activitythread.performlaunchactivity(activitythread.java:2023)                                                                                    @ android.app.activitythread.handlelaunchactivity(activitythread.java:2084)                                                                                     @ android.app.activitythread.access$600(activitythread.java:130)                                                                                     @ android.app.activitythread$h.handlemessage(activitythread.java:1195)                                                                                     @ android.os.handler.dispatchmessage(handler.java:99)                                                                                     @ android.os.looper.loop(looper.java:137)                                                                                     @ android.app.activitythread.main(activitythread.java:4745)                                                                                     @ java.lang.reflect.method.invokenative(native method)                                                                                     @ java.lang.reflect.method.invoke(method.java:511)                                                                                     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:786)                                                                                     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:553)                                                                                     @ dalvik.system.nativestart.main(native method)  02-02 23:47:10.529 15871-15871/com.example.jdw.seventhscreen i/process: sending signal.    

check line 58 of listcontactsactivity.java. source of error.

it seems created button using id r.id.savebuttonrv. said xml posted used cardviewactivity. means, cannot use r.id.savebuttonrv in other activities. that's why got null value savebutton in listcontactsactivity. thus, setting onclick listener null value result in null pointer exception

if want pass data 1 activity another, should use startactivityforresult(). check this thread , this documentation/tutorial.

basically, use startactivityforresult() instead of startactivity(). in cardviewactivity need create intent put string inside intent object, this:

intent returnintent = new intent(); returnintent.putextra(sometag, userinputstring); setresult(activity.result_ok, returnintent); 

then in listcontactsactivity, override onactivityresult data intent.

since didn't post enough data regarding recyclerview, assume have separate layout rows of recyclerview, , have list<string> inside recyclerview adapter.

after getting user input, , having passed activity contains recyclerview, have add data recyclerview adapter, have list<string>. , check this on how add data recyclerview.


Comments

Popular posts from this blog

Delphi XE2 Indy10 udp client-server interchange using SendBuffer-ReceiveBuffer -

Qt ActiveX WMI QAxBase::dynamicCallHelper: ItemIndex(int): No such property in -

python - cx_oracle unable to find Oracle Client -