android - How do I pass data from sqlite database to another activity? -


i have database columns {id,eng,kurd,ar} , have populated listview shows {eng} databse. want pass {eng,kurd,ar} have same {id} when user clicks item in listview, when click item app crashes, else works fine there no error in non of other classes[adapter,sqliteopenhelper]

mainactivity.class

package com.rawa.rawadict;  import android.content.intent; import android.database.cursor; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.view; import android.widget.adapterview; import android.widget.arrayadapter; import android.widget.listview; import android.widget.textview;  import java.io.ioexception; import java.sql.sqlexception; import java.util.arraylist;  public class mainactivity extends appcompatactivity {     adapter adapter;     arraylist<item> mylist = new arraylist<item>();     listview mylistview;     databasehelper mydbhelper = new databasehelper(this);     string engres,kurdres,arres;     @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);          try {             mydbhelper.createdatabase();             mydbhelper.opendatabase();         } catch (ioexception e) {              throw new error("unable create database");         }         cursor cursor = mydbhelper.querydata("select * zankodict");         if (cursor != null) {             if (cursor.movetofirst()) {                 {                     item itemm = new item();                     itemm.setid(cursor.getstring(0));                     itemm.seteng(cursor.getstring(1));                     mylist.add(itemm);                 } while (cursor.movetonext());             }         }         adapter = new adapter(this, r.layout.single_row, mylist);         mylistview = (listview) findviewbyid(r.id.lview);         mylistview.setadapter(adapter);         adapter.notifydatasetchanged();      mylistview.setonitemclicklistener(new adapterview.onitemclicklistener() {         @override         public void onitemclick(adapterview<?> parent, view view, int position, long id) {             textview text_id = (textview) view.findviewbyid(r.id.tid);             string sel_id = text_id.gettext().tostring();             cursor cursor = mydbhelper.querydata("select * zankodict id =" + sel_id);             if (cursor != null) {                 if (cursor.movetofirst()) {                     {                         engres = cursor.getstring(1);                         kurdres=cursor.getstring(2);                         arres= cursor.getstring(3);                     } while (cursor.movetonext());                 }             }             // create intent start activity             intent intent = new intent(mainactivity.this, result.class);             // add selected text item our intent.             bundle extras = new bundle();             extras.putstring("eng",engres);             extras.putstring("kurd",kurdres);             extras.putstring("ar",arres);             intent.putextras(extras);             startactivity(intent);         }     }) ;       } } 

result.class

package com.rawa.rawadict;   import android.content.intent; import android.database.cursor; import android.os.bundle; import android.support.v7.app.appcompatactivity; import android.widget.textview;  import java.io.ioexception; import java.util.arraylist;  public class result extends appcompatactivity {     textview etview2,ktview2,atview2;     @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.result_view);         etview2 = (textview) findviewbyid(r.id.etextview2);         ktview2 = (textview) findviewbyid(r.id.ktextview2);         atview2 = (textview) findviewbyid(r.id.atextview2);          intent intent = getintent();         bundle extras = intent.getextras();         string eng = extras.getstring("eng");         string kurd = extras.getstring("kurd");         string ar = extras.getstring("ar");         etview2.settext(eng);         etview2.settext(kurd);         etview2.settext(ar);         }     } 

i want pass bundle result.class

the best approach passing data activity activity , particularly database pass (id) intent when arrive @ destination activity, extract , use query database based on id.

this reduce amount of data have pass through intent instance.

if want pass 3 items however, can use intent extras instead of bundle this:

intent intent = new intent(mainactivity.this, result.class); intent.putextra("eng",engres); intent.putextra"kurd",kurdres); intent.putextra("ar",arres);  startactivity(intent); 

to extract in results activity;

intent intent = getintent(); string eng = intent.getextras().getstring("eng"); string kurd = intent.getextras().getstring("kurd"); string ar = intent.getextras().getstring("ar"); 

i hope helps , luck!


Comments

Popular posts from this blog

sql - invalid in the select list because it is not contained in either an aggregate function -

Angularjs unit testing - ng-disabled not working when adding text to textarea -

How to start daemon on android by adb -