android - setOnItemSelectedListener : application stops working -


i'm new android , , i'm trying make edittext visible while selecting item ,the code seems fine , emulator stops working anytime run application , click on button accesses activity .here code :

import java.util.locale;  import android.app.actionbar; import android.app.fragmenttransaction; import android.content.intent; import android.os.bundle; import android.support.v4.app.fragment; import android.support.v4.app.fragmentactivity; import android.support.v4.app.fragmentmanager; import android.support.v4.app.fragmentpageradapter; import android.support.v4.app.navutils; import android.support.v4.view.viewpager; import android.view.gravity; import android.view.layoutinflater; import android.view.menu; import android.view.menuitem; import android.view.view; import android.view.viewgroup; import android.view.view.onclicklistener; import android.widget.adapterview; import android.widget.adapterview.onitemselectedlistener; import android.widget.button; import android.widget.edittext; import android.widget.spinner; import android.widget.textview; import android.widget.toast;  public class manageactivity extends fragmentactivity implements         actionbar.tablistener {        /**      * {@link android.support.v4.view.pageradapter} provide      * fragments each of sections. use      * {@link android.support.v4.app.fragmentpageradapter} derivative,      * keep every loaded fragment in memory. if becomes memory      * intensive, may best switch      * {@link android.support.v4.app.fragmentstatepageradapter}.      */     sectionspageradapter msectionspageradapter;      /**      * {@link viewpager} host section contents.      */     viewpager mviewpager;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_manage);          // set action bar.         final actionbar actionbar = getactionbar();         actionbar.setnavigationmode(actionbar.navigation_mode_tabs);          // create adapter return fragment each of 3         // primary sections of app.         msectionspageradapter = new sectionspageradapter(                 getsupportfragmentmanager());          // set viewpager sections adapter.         mviewpager = (viewpager) findviewbyid(r.id.pager);         mviewpager.setadapter(msectionspageradapter);          // when swiping between different sections, select corresponding         // tab. can use actionbar.tab#select() if have         // reference tab.         mviewpager                 .setonpagechangelistener(new viewpager.simpleonpagechangelistener() {                     @override                     public void onpageselected(int position) {                         actionbar.setselectednavigationitem(position);                     }                 });          // each of sections in app, add tab action bar.         (int = 0; < msectionspageradapter.getcount(); i++) {             // create tab text corresponding page title defined             // adapter. specify activity object, implements             // tablistener interface, callback (listener) when             // tab selected.             actionbar.addtab(actionbar.newtab()                     .settext(msectionspageradapter.getpagetitle(i))                     .settablistener(this));         }     }      @override     public boolean oncreateoptionsmenu(menu menu) {         // inflate menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.manage, menu);         return true;     }      @override     public void ontabselected(actionbar.tab tab,             fragmenttransaction fragmenttransaction) {         // when given tab selected, switch corresponding page in         // viewpager.         mviewpager.setcurrentitem(tab.getposition());     }      @override     public void ontabunselected(actionbar.tab tab,             fragmenttransaction fragmenttransaction) {     }      @override     public void ontabreselected(actionbar.tab tab,             fragmenttransaction fragmenttransaction) {     }      /**      * {@link fragmentpageradapter} returns fragment corresponding      * 1 of sections/tabs/pages.      */     public class sectionspageradapter extends fragmentpageradapter {          public sectionspageradapter(fragmentmanager fm) {             super(fm);         }          @override         public fragment getitem(int position) {             // getitem called instantiate fragment given page.             // return newcasefragment (defined static inner class             // below) page number lone argument.              if(position == 0){             fragment fragment = new newcasefragment();             //bundle args = new bundle();             //args.putint(newcasefragment.arg_section_number, position + 1);             //fragment.setarguments(args);             return fragment;              }             else{                 fragment fragment = new updatefragment();                 return fragment;             }         }          @override         public int getcount() {             // show 3 total pages.             return 3;         }          @override         public charsequence getpagetitle(int position) {             locale l = locale.getdefault();             switch (position) {             case 0:                 return getstring(r.string.title_section1).touppercase(l);             case 1:                 return getstring(r.string.title_section2).touppercase(l);             case 2:                 return getstring(r.string.title_section3).touppercase(l);             }             return null;         }     }      /**      *  fragment representing section of app      */     public static class newcasefragment extends fragment implements onitemselectedlistener{           public newcasefragment() {         }          button members ;         edittext orgname ,  orgaddress;         //spinner spinner1;            @override         public view oncreateview(layoutinflater inflater, viewgroup container,                 bundle savedinstancestate) {             view rootview = inflater.inflate(r.layout.newcase,                     container, false);              button members = (button)getactivity(). findviewbyid(r.id.members);             edittext orgname = (edittext)getactivity(). findviewbyid(r.id.orgname);             edittext orgaddress = (edittext)getactivity(). findviewbyid(r.id.orgaddress);              spinner spinner1 = (spinner)getactivity(). findviewbyid(r.id.spinner1);              spinner1.setonitemselectedlistener(this);                        //members.setonclicklistener(memberslistener);              return rootview;         }         public void onitemselected(adapterview<?> spinner1, view view,int pos, long id)        {         orgname.setvisibility(view.visible);         orgaddress.setvisibility(view.visible);         }      @override     public void onnothingselected(adapterview<?> arg0) {         // todo auto-generated method stub      }       }       /*******      *       */  public static class updatefragment extends fragment {           public updatefragment() {         }         @override         public view oncreateview(layoutinflater inflater, viewgroup container,                 bundle savedinstancestate) {             view rootview = inflater.inflate(r.layout.updatecase,                     container, false);              return rootview;         }     }   } 

the layout :

<scrollview xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/scroller"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:fillviewport="true" >      <linearlayout         android:layout_width="fill_parent"         android:layout_height="fill_parent"         android:orientation="vertical" >          <linearlayout             android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:layout_weight="0.01"             android:orientation="horizontal"             android:padding="10dp" >              <edittext                 android:id="@+id/casename"                 android:layout_width="0dp"                 android:layout_height="wrap_content"                 android:layout_weight="1.0"                 android:ems="10"                 android:hint="@string/casename"                 android:inputtype="text"                 android:textsize="12sp" >                  <requestfocus />             </edittext>         </linearlayout>          <spinner         android:id="@+id/spinner1"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:entries="@array/organisation"         android:prompt="@string/infoorg" />             <!-- layout organisation information -->            <linearlayout             android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:layout_weight="0.01"             android:orientation="horizontal"             android:padding="10dp" >              <edittext                 android:id="@+id/orgname"                 android:layout_width="0dp"                 android:layout_height="wrap_content"                 android:layout_weight="1.0"                 android:hint="@string/orgname"                 android:inputtype="text"                 android:textsize="12sp"                  android:visibility="gone"                 />         </linearlayout>          <linearlayout             android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:layout_weight="0.01"             android:orientation="horizontal"             android:padding="10dp" >              <edittext                 android:id="@+id/orgaddress"                 android:layout_width="0dp"                 android:layout_height="wrap_content"                 android:layout_weight="1.0"                 android:hint="@string/orgaddress"                 android:inputtype="text"                 android:textsize="12sp"                 android:visibility="gone"                  />         </linearlayout>          <relativelayout             android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:layout_weight="0.01"             android:orientation="horizontal"             android:padding="10dp" >              <textview                 android:id="@+id/staff"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:layout_weight="1.0"                 android:clickable="true"                 android:hint="@string/staff"                 android:textsize="14sp"                 android:layout_margin="10dp"                 android:textstyle="bold" />              <button                 android:id="@+id/members"                 style="@style/btnstylegrey"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:drawableleft="@drawable/users2"                 android:text="@string/plus"                  android:layout_torightof="@+id/staff"                 />           </relativelayout>          <button             android:id="@+id/submit"             style="@style/btnstyleblue"             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:layout_margin="10dp"             android:text="@string/submit" />     </linearlayout>  </scrollview> 

here log :

05-09 18:01:44.684: e/androidruntime(1480): fatal exception: main 05-09 18:01:44.684: e/androidruntime(1480): java.lang.nullpointerexception 05-09 18:01:44.684: e/androidruntime(1480):     @ com.pfe.risu.manageactivity$newcasefragment.oncreateview(manageactivity.java:195) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.support.v4.app.fragment.performcreateview(fragment.java:1460) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:911) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1088) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.support.v4.app.backstackrecord.run(backstackrecord.java:682) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.support.v4.app.fragmentmanagerimpl.execpendingactions(fragmentmanager.java:1444) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.support.v4.app.fragmentmanagerimpl.executependingtransactions(fragmentmanager.java:461) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.support.v4.app.fragmentpageradapter.finishupdate(fragmentpageradapter.java:141) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.support.v4.view.viewpager.populate(viewpager.java:1011) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.support.v4.view.viewpager.populate(viewpager.java:880) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.support.v4.view.viewpager.onmeasure(viewpager.java:1374) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.view.view.measure(view.java:12603) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4677) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.widget.framelayout.onmeasure(framelayout.java:293) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.view.view.measure(view.java:12603) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.widget.linearlayout.measurevertical(linearlayout.java:812) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.widget.linearlayout.onmeasure(linearlayout.java:553) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.view.view.measure(view.java:12603) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4677) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.widget.framelayout.onmeasure(framelayout.java:293) 05-09 18:01:44.684: e/androidruntime(1480):     @ com.android.internal.policy.impl.phonewindow$decorview.onmeasure(phonewindow.java:2072) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.view.view.measure(view.java:12603) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1044) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.view.viewrootimpl.handlemessage(viewrootimpl.java:2418) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.os.handler.dispatchmessage(handler.java:99) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.os.looper.loop(looper.java:137) 05-09 18:01:44.684: e/androidruntime(1480):     @ android.app.activitythread.main(activitythread.java:4340) 05-09 18:01:44.684: e/androidruntime(1480):     @ java.lang.reflect.method.invokenative(native method) 05-09 18:01:44.684: e/androidruntime(1480):     @ java.lang.reflect.method.invoke(method.java:511) 05-09 18:01:44.684: e/androidruntime(1480):     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:784) 05-09 18:01:44.684: e/androidruntime(1480):     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:551) 05-09 18:01:44.684: e/androidruntime(1480):     @ dalvik.system.nativestart.main(native method) 

to solve second problem :

now null pointer exception on these lines :

orgname.setvisibility(view.visible);  orgaddress.setvisibility(view.visible); 

i initialised variable inside onitemselected method :

public void onitemselected(adapterview<?> spinner1, view view,int pos, long id)        {              edittext orgname = (edittext)getactivity().findviewbyid(r.id.orgname);             edittext orgaddress = (edittext)getactivity().findviewbyid(r.id.orgaddress);          orgname.setvisibility(view.visible);         orgaddress.setvisibility(view.visible);         } 

i'm getting no exceptions on itemselectedlistner doesn't seem working , , edittexts visible :(

after replacing

edittext orgname = (edittext)getactivity(). findviewbyid(r.id.orgname); edittext orgaddress = (edittext)getactivity(). findviewbyid(r.id.orgaddress);

with

edittext orgname = (edittext)view.findviewbyid(r.id.orgname);  edittext orgaddress = (edittext)view.findviewbyid(r.id.orgaddress); 

manageactivity shows edittexts invisible , application stops again . here log :

    05-09 20:58:24.401: e/androidruntime(581): fatal exception: main 05-09 20:58:24.401: e/androidruntime(581): java.lang.nullpointerexception 05-09 20:58:24.401: e/androidruntime(581):  @ com.pfe.risu.manageactivity$newcasefragment.onitemselected(manageactivity.java:208) 05-09 20:58:24.401: e/androidruntime(581):  @ android.widget.adapterview.fireonselected(adapterview.java:882) 05-09 20:58:24.401: e/androidruntime(581):  @ android.widget.adapterview.access$200(adapterview.java:48) 05-09 20:58:24.401: e/androidruntime(581):  @ android.widget.adapterview$selectionnotifier.run(adapterview.java:848) 05-09 20:58:24.401: e/androidruntime(581):  @ android.os.handler.handlecallback(handler.java:605) 05-09 20:58:24.401: e/androidruntime(581):  @ android.os.handler.dispatchmessage(handler.java:92) 05-09 20:58:24.401: e/androidruntime(581):  @ android.os.looper.loop(looper.java:137) 05-09 20:58:24.401: e/androidruntime(581):  @ android.app.activitythread.main(activitythread.java:4340) 05-09 20:58:24.401: e/androidruntime(581):  @ java.lang.reflect.method.invokenative(native method) 05-09 20:58:24.401: e/androidruntime(581):  @ java.lang.reflect.method.invoke(method.java:511) 05-09 20:58:24.401: e/androidruntime(581):  @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:784) 05-09 20:58:24.401: e/androidruntime(581):  @ com.android.internal.os.zygoteinit.main(zygoteinit.java:551) 05-09 20:58:24.401: e/androidruntime(581):  @ dalvik.system.nativestart.main(native method) 

and here line 208 :

orgname.setvisibility(view.visible); 

you forgot initialize variables

edittext orgname;         edittext orgaddress; button members; 

so when you're doing

members.setonclicklistener(memberslistener); orgname.setvisibility(view.visible); orgaddress.setvisibility(view.visible); 

a nullpointerexception thrown , app stops

edit :

you have variable view inflated :

replace :

button members = (button)getactivity(). findviewbyid(r.id.members); edittext orgname = (edittext)getactivity(). findviewbyid(r.id.orgname); edittext orgaddress = (edittext)getactivity(). findviewbyid(r.id.orgaddress); spinner spinner1 = (spinner)getactivity(). findviewbyid(r.id.spinner1); 

by :

button members = (button)rootview.findviewbyid(r.id.members); edittext orgname = (edittext)rootview.findviewbyid(r.id.orgname); edittext orgaddress = (edittext)rootview.findviewbyid(r.id.orgaddress); spinner spinner1 = (spinner)rootview.findviewbyid(r.id.spinner1); 

edit :

replace:

edittext orgname = (edittext)getactivity().findviewbyid(r.id.orgname);  edittext orgaddress = (edittext)getactivity().findviewbyid(r.id.orgaddress); 

by :

edittext orgname = (edittext)view.findviewbyid(r.id.orgname); edittext orgaddress = (edittext)view.findviewbyid(r.id.orgaddress); 

Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -