java - How to change linearlayout background from sqliteopenhelper class using layoutinflater and viewgroup -


i have tried method

this dbcontroller.java

public class dbcontroller  extends sqliteopenhelper {       public dbcontroller(context applicationcontext)      {         super(applicationcontext, "user.db", null, 1);     }      //creates table     @override     public void oncreate(sqlitedatabase database)      {         string query;         query = "create table users ( userid integer, username text)";         database.execsql(query);     }      @override     public void onupgrade(sqlitedatabase database, int version_old, int current_version)      {         string query;         query = "drop table if exists users";         database.execsql(query);         oncreate(database);     }       /**      * inserts user sqlite db      * @param queryvalues      */     public void insertuser(hashmap<string, string> queryvalues)      {         sqlitedatabase database = this.getwritabledatabase();         contentvalues values = new contentvalues();         values.put("userid", queryvalues.get("userid"));         values.put("username", queryvalues.get("username"));         database.insert("users", null, values);         database.close();     }       /**      * list of users sqlite db array list      * @return      */      public arraylist<hashmap<string, string>> getallusers()      {         arraylist<hashmap<string, string>> userslist;         userslist = new arraylist<hashmap<string, string>>();         string selectquery = "select  * users";         sqlitedatabase database = this.getwritabledatabase();         cursor cursor = database.rawquery(selectquery, null);         if (cursor.movetofirst())          {                          {                 hashmap<string, string> map = new hashmap<string, string>();                  string idnya = cursor.getstring(0);                 if (idnya.equals("36"))                 {                     map.put("userid", "my id");                     map.put("username", "my username");                      context context=null;                     viewgroup parent=null;                     layoutinflater inflater = (layoutinflater) context.getsystemservice(context.layout_inflater_service);                                    view v = inflater.inflate(r.layout.view_user_entry, parent, true);                     linearlayout bg = (linearlayout) v.findviewbyid(r.id.wrapper);                     bg.setbackgroundresource(r.drawable.bubble_yellow);                 }                 else                 {                     map.put("userid", cursor.getstring(0));                     map.put("username", cursor.getstring(1));                 }                 userslist.add(map);             }              while (cursor.movetonext());         }         database.close();         return userslist;            }   } 

and mainactivity.java

public class mainactivity extends actionbaractivity  {     dbcontroller controller = new dbcontroller(this);      @override     protected void oncreate(bundle savedinstancestate)      {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);         // user records sqlite db         arraylist<hashmap<string, string>> userlist = controller.getallusers();         // if users exists in sqlite db         if (userlist.size() != 0)          {                        listadapter adapter = new simpleadapter(mainactivity.this, userlist, r.layout.view_user_entry, new string[] {                             "userid", "username" }, new int[] { r.id.userid, r.id.username });             listview mylist = (listview) findviewbyid(android.r.id.list);             mylist.setadapter(adapter);          }          intent alarmintent = new intent(getapplicationcontext(), samplebc.class);         // pending intent object         pendingintent pendingintent = pendingintent.getbroadcast(getapplicationcontext(), 0, alarmintent, pendingintent.flag_update_current);         alarmmanager alarmmanager = (alarmmanager) getapplicationcontext().getsystemservice(context.alarm_service);         // alarm manager calls broadcast every ten seconds (10 * 1000), broadcase further calls service check if new records inserted in          alarmmanager.setrepeating(alarmmanager.rtc_wakeup, calendar.getinstance().gettimeinmillis() + 5000, 10 * 1000, pendingintent);     }       // options menu (actionbar menu)     @override     public boolean oncreateoptionsmenu(menu menu)      {         // inflate menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.main, menu);         return true;     }      // when options menu selected     @override     public boolean onoptionsitemselected(menuitem item)      {         // handle action bar item clicks here.          int id = item.getitemid();         // when sync action button clicked         if (id == r.id.action_settings)          {             return true;         }         return super.onoptionsitemselected(item);     }   } 

this view-user_entry.xml

<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:orientation="vertical"     android:id="@+id/wrapper"     android:background="@drawable/bubble_green" >         <textview            android:id="@+id/username"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginbottom="5dp"            android:layout_margintop="dp"            android:paddingleft="0dip"            android:paddingtop="0dip"            android:textcolor="@android:color/primary_text_light"            android:textsize="14sp"                       />         <textview         android:id="@+id/userid"         android:layout_width="wrap_content"         android:layout_height="wrap_content" />  </linearlayout> 

here error

                    context context=null;                     viewgroup parent=null;                     layoutinflater inflater = (layoutinflater) context.getsystemservice(context.layout_inflater_service);                                    view v = inflater.inflate(r.layout.view_user_entry, parent, true);                     linearlayout bg = (linearlayout) v.findviewbyid(r.id.wrapper);                     bg.setbackgroundresource(r.drawable.bubble_yellow); 

when running application, says force closed. don't know should do, because method have tried, still force closed.

thank much.

first step save name "layaout_first" in sqlite, need method, , last , important : getresources().getidentifier(id, "layaout_first", ctx.getpackagename());, , change background programatically


Comments

Popular posts from this blog

How to connect android app to App engine -

gcc - MinGW's ld cannot perform PE operations on non PE output file -

php - display validation error message next to the textbox in codeigniter -