java - Storing a spinner item in a string value -


i have created app connected remote database. items in database displayed through spinner in mainactivity class. want display selected item in separate class(map.java) , xml page(map.xml), used code in map.java try selected item , display it:

    spinner myspinner = (spinner)findviewbyid(r.id.spinfood);     string text = myspinner.getselecteditem().tostring();     edittext e = (edittext) findviewbyid (r.id.edittext1);     e.settext(text); 

to display value created edittext in map.xml file:

<edittext     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:inputtype="text"     android:text="@string/text"     android:id="@+id/edittext1"     android:layout_alignbottom="@+id/textview"     android:layout_torightof="@+id/textview"     android:layout_alignright="@+id/imageview"     android:layout_alignend="@+id/imageview" /> 

the android:input_type="text" string value created:

<string name="text"> %s </string>

but whenever open map page app crashes. please tell me going wrong? here of code mainactivity , map.java

mainactivity

package com.example.cillin.infoandroidhivespinnermysql;  import java.util.arraylist; ..  public class mainactivity extends activity implements onitemselectedlistener        {  private button btnaddnewcategory; private textview txtcategory; public spinner spinnerfood;  // array list spinner adapter private arraylist<category> categorieslist; progressdialog pdialog;  // api urls // url create new category private string url_new_category = "http://192.168.1.4/food_api/new_category.php"; // url categories private string url_categories = "http://192.168.1.4/food_api/get_categories.php";  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);      btnaddnewcategory = (button) findviewbyid(r.id.btnaddnewcategory);     spinnerfood = (spinner) findviewbyid(r.id.spinfood);     txtcategory = (textview) findviewbyid(r.id.txtcategory);      categorieslist = new arraylist<category>();      // spinner item select listener     spinnerfood.setonitemselectedlistener(this);      // add new category click event     btnaddnewcategory.setonclicklistener(new view.onclicklistener() {          @override         public void onclick(view v) {             if (txtcategory.gettext().tostring().trim().length() > 0) {                  // new category name                 string newcategory = txtcategory.gettext().tostring();                  // call async task create new category                 new addnewcategory().execute(newcategory);             } else {                 toast.maketext(getapplicationcontext(),                         "please enter category name", toast.length_short)                         .show();             }         }     });      new getcategories().execute();  }  /**  * adding spinner data  * */ private void populatespinner() {     list<string> lables = new arraylist<string>();      txtcategory.settext("");      (int = 0; < categorieslist.size(); i++) {         lables.add(categorieslist.get(i).getname());     }      // creating adapter spinner     arrayadapter<string> spinneradapter = new arrayadapter<string>(this,             android.r.layout.simple_spinner_item, lables);      // drop down layout style - list view radio button     spinneradapter             .setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item);      // attaching data adapter spinner     spinnerfood.setadapter(spinneradapter);      //spinnervalue = spinnerfood.getselecteditem().tostring(); }  /**  * async task food categories  * */ private class getcategories extends asynctask<void, void, void> {      @override     protected void onpreexecute() {         super.onpreexecute();         pdialog = new progressdialog(mainactivity.this);         pdialog.setmessage("fetching food categories..");         pdialog.setcancelable(false);         pdialog.show();      }      @override     protected void doinbackground(void... arg0) {         servicehandler jsonparser = new servicehandler();         string json = jsonparser.makeservicecall(url_categories, servicehandler.get);          log.e("response: ", "> " + json);          if (json != null) {             try {                 jsonobject jsonobj = new jsonobject(json);                 if (jsonobj != null) {                     jsonarray categories = jsonobj                             .getjsonarray("categories");                      (int = 0; < categories.length(); i++) {                         jsonobject catobj = (jsonobject) categories.get(i);                         category cat = new category(catobj.getint("id"),                                 catobj.getstring("name"));                         categorieslist.add(cat);                     }                 }              } catch (jsonexception e) {                 e.printstacktrace();             }          } else {             log.e("json data", "didn't receive data server!");         }          return null;     }      @override     protected void onpostexecute(void result) {         super.onpostexecute(result);         if (pdialog.isshowing())             pdialog.dismiss();         populatespinner();     }  }  /**  * async task create new food category  * */ private class addnewcategory extends asynctask<string, void, void> {      boolean isnewcategorycreated = false;      @override     protected void onpreexecute() {         super.onpreexecute();         pdialog = new progressdialog(mainactivity.this);         pdialog.setmessage("creating new category..");         pdialog.setcancelable(false);         pdialog.show();      }      @override     protected void doinbackground(string... arg) {          string newcategory = arg[0];          // preparing post params         list<namevaluepair> params = new arraylist<namevaluepair>();         params.add(new basicnamevaluepair("name", newcategory));          servicehandler serviceclient = new servicehandler();          string json = serviceclient.makeservicecall(url_new_category,                 servicehandler.post, params);          log.d("create response: ", "> " + json);          if (json != null) {             try {                 jsonobject jsonobj = new jsonobject(json);                 boolean error = jsonobj.getboolean("error");                 // checking error node in json                 if (!error) {                     // new category created                     isnewcategorycreated = true;                 } else {                     log.e("create category error: ", "> " + jsonobj.getstring("message"));                 }              } catch (jsonexception e) {                 e.printstacktrace();             }          } else {             log.e("json data", "didn't receive data server!");         }          return null;     }      @override     protected void onpostexecute(void result) {         super.onpostexecute(result);         if (pdialog.isshowing())             pdialog.dismiss();         if (isnewcategorycreated) {             runonuithread(new runnable() {                 @override                 public void run() {                     // fetching categories                     new getcategories().execute();                 }             });         }     }  }  @override public void onitemselected(adapterview<?> parent, view view, int position,                            long id) {     toast.maketext(             getapplicationcontext(),             parent.getitematposition(position).tostring() + " selected" ,             toast.length_long).show();  }  @override public void onnothingselected(adapterview<?> arg0) { } 

}

map.java

package com.example.cillin.infoandroidhivespinnermysql;  import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.view; import android.widget.button; import android.widget.edittext; import android.widget.imageview; import android.widget.spinner; import android.widget.textview; 

public class map extends activity {

public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);       //this page layout located in menu xml file     //setcontentview links java file, xml file layout     setcontentview(r.layout.map);      /*textview.settext(spinnervalue);     textview spinv = (textview)findviewbyid(r.id.textview2);     spinv.settext(getspin());     spinv = getspin();*/      spinner myspinner = (spinner)findviewbyid(r.id.spinfood);     string text = myspinner.getselecteditem().tostring();     edittext e = (edittext) findviewbyid (r.id.edittext1);     e.settext(text);       button mainm = (button)findviewbyid(r.id.mainmenu);     mainm.setonclicklistener(new view.onclicklistener() {         @override         public void onclick(view v) {             //this button linked map page             intent = new intent(map.this, mainmenu.class);              //activating intent             startactivity(i);         }     }); }  } 

any appreciated!!

here errors in logcat when crashes:

  e/databaseutils﹕ writing exception parcel     java.lang.securityexception: permission denial: get/set setting user asks run user -2 calling user 0; requires android.permission.interact_across_users_full             @ com.android.server.am.activitymanagerservice.handleincominguser(activitymanagerservice.java:14643)             @ android.app.activitymanager.handleincominguser(activitymanager.java:2469)             @ com.android.providers.settings.settingsprovider.call(settingsprovider.java:688)             @ android.content.contentprovider$transport.call(contentprovider.java:325)             @ android.content.contentprovidernative.ontransact(contentprovidernative.java:275)             @ android.os.binder.exectransact(binder.java:404)       e/androidruntime﹕ fatal exception: main     process: com.example.cillin.infoandroidhivespinnermysql, pid: 14691     java.lang.runtimeexception: unable start activity componentinfo{com.example.cillin.infoandroidhivespinnermysql/com.example.cillin.infoandroidhivespinnermysql.map}: java.lang.nullpointerexception             @ android.app.activitythread.performlaunchactivity(activitythread.java:2305)             @        android.app.activitythread.handlelaunchactivity(activitythread.java:2363)             @ android.app.activitythread.access$900(activitythread.java:161)         @ android.app.activitythread$h.handlemessage(activitythread.java:1265)         @ android.os.handler.dispatchmessage(handler.java:102)         @ android.os.looper.loop(looper.java:157)         @ android.app.activitythread.main(activitythread.java:5356)         @ java.lang.reflect.method.invokenative(native method)         @ java.lang.reflect.method.invoke(method.java:515)         @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1265)         @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1081)         @ dalvik.system.nativestart.main(native method)  caused by: java.lang.nullpointerexception         @ com.example.cillin.infoandroidhivespinnermysql.map.oncreate(map.java:34)         @ android.app.activity.performcreate(activity.java:5426)         @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1105)         @ android.app.activitythread.performlaunchactivity(activitythread.java:2269)             at android.app.activitythread.handlelaunchactivity(activitythread.java:2363)             at android.app.activitythread.access$900(activitythread.java:161)             at android.app.activitythread$h.handlemessage(activitythread.java:1265)             at android.os.handler.dispatchmessage(handler.java:102)             at android.os.looper.loop(looper.java:157)             at android.app.activitythread.main(activitythread.java:5356)             at java.lang.reflect.method.invokenative(native method)             at java.lang.reflect.method.invoke(method.java:515)             at com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1265)             at com.android.internal.os.zygoteinit.main(zygoteinit.java:1081)             at dalvik.system.nativestart.main(native method) 

i'm guessing you're getting nullpointerexception in map.class

spinner myspinner = (spinner)findviewbyid(r.id.spinfood); string text = myspinner.getselecteditem().tostring(); edittext e = (edittext) findviewbyid (r.id.edittext1); e.settext(text); 

you reference spinner, try selected item , convert item string. far can tell haven't added items spinner. guess trying access object in spinner , since doesn't exist returns null. try call method on null object , npe.

this guess. stacktrace helpful in trying diagnose this.

where think you're going wrong populate spinner in mainactivity , expect able select item spinner different activity. isn't how works. map.class won't able reference in mainactivity.class. try passing object mainactivity.class map.class or use different method of passing data, trying reference data in mainacitivity.class map.class won't work.

edit: if want pass string mainactivity.class map.class can add string 'extra' intent use start map.class.

in mainactivity.class code. when item spinner selected, create intent , set string using putextra() method. need supply key tags can identify in receiving activity , string want send.

intent intent = new intent(this, map.class); intent.putextra("key_spinner_string", variablerepresentingstring); startactivity(intent); 

in map.class activity, in oncreate() method need receive intent, check extra, unpack extra. have string.

oncreate(bundle savedinstancestate) {     string spinnerstring;     if (getintent() != null && getintent().getextras() != null) {         bundle bundle = getintent().getextras();         if (bundle.getstring("key_spinner_string") != null) {             spinnerstring = bundle.getstring("key_spinner_string");         }     } } 

if done correctly string passed mainactivity.class , received map.class


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -