android - Activities and It's Subactivities issue in Tabhost -


i having tabhost in application, in first activity 1 listview there..now when scroll , click on listview subactivity called.. now, when come secondactivity first activity listview scroll first.. want list stayed @ position clicked go secondactivity.. using tabgroupactivity. here tabgroupactivity class.

public class tabgroupactivity extends activitygroup {      private arraylist<string> midlist;      @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         if (midlist == null)             midlist = new arraylist<string>();     }      /**      * called when child activity of 1 calls finish method.      * implementation calls {@link localactivitymanager#destroyactivity} on      * child activity , starts previous activity. if last child      * activity called finish(),this activity (the parent), calls finish      * finish entire group.      */     @override     public void finishfromchild(activity child) {         localactivitymanager manager = getlocalactivitymanager();         int index = midlist.size() - 1;          log.v("onm", "my size"+midlist.size());         log.v("onm", "my index====>>"+index);          if (index < 1)         {             log.v("click", "back click event finish child if condition");             finish();             return;         }          try         {             log.v("click", "back click event finish child====>>>"+midlist.get(index));             manager.destroyactivity(midlist.get(index), true);             midlist.remove(index);             index--;             string lastid = midlist.get(index);             intent lastintent = manager.getactivity(lastid).getintent();             window newwindow = manager.startactivity(lastid, lastintent);             setcontentview(newwindow.getdecorview());         }         catch (exception e)         {             log.v("log", "trick");             finish();         }     }      /**      * starts activity child activity this.      *       * @param id      *            unique identifier of activity started.      * @param intent      *            intent describing activity started.      * @throws android.content.activitynotfoundexception.      */     public void startchildactivity(string id, intent intent)      {         window window = getlocalactivitymanager().startactivity(id,intent.addflags(intent.flag_activity_no_history));         if (window != null)          {           midlist.add(id);           setcontentview(window.getdecorview());         }       }      /**      * primary purpose prevent systems before      * android.os.build.version_codes.eclair calling default      * keyevent.keycode_back during onkeydown.      */     @override     public boolean onkeydown(int keycode, keyevent event)      {         if (keycode == keyevent.keycode_back)         {             // preventing default implementation previous             // android.os.build.version_codes.eclair             return true;         }         return super.onkeydown(keycode, event);     }      /**      * overrides default implementation keyevent.keycode_back      * systems call onbackpressed().      */     @override     public boolean onkeyup(int keycode, keyevent event)      {         if (keycode == keyevent.keycode_back)         {             onbackpressed();             return true;         }         return super.onkeyup(keycode, event);     }      /**      * if child activity handles keyevent.keycode_back. override ,      * add method.      */     public void onbackpressed()      {         int length = midlist.size();         if (length > 1)         {             log.v("click", "back click event");             activity current = getlocalactivitymanager().getactivity(midlist.get(length - 1));             current.finish();         }     }     @override     protected void onactivityresult(int requestcode, int resultcode, intent data)      {         // todo auto-generated method stub         super.onactivityresult(requestcode, resultcode, data);     } } 

package com.android.workingwithtabs;  import java.util.arraylist;  import android.app.activity; import android.app.activitygroup; import android.app.localactivitymanager;   import android.content.intent; import android.os.bundle; import android.view.keyevent; import android.view.window;  @suppresswarnings("deprecation") public class workouttabgroupactivity extends activitygroup {  private arraylist<string> midlist;  @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     if (midlist == null)         midlist = new arraylist<string>(); }  @override public void finishfromchild(activity child) {     localactivitymanager manager = getlocalactivitymanager();     int index = midlist.size() - 1;      if (index < 1) {         finish();         return;     }      manager.destroyactivity(midlist.get(index), true);     midlist.remove(index);     index--;     string lastid = midlist.get(index);     intent lastintent = manager.getactivity(lastid).getintent();     window newwindow = manager.startactivity(lastid, lastintent);     setcontentview(newwindow.getdecorview()); }  /**  * starts activity child activity this.  *   * @param id  *            unique identifier of activity started.  * @param intent  *            intent describing activity started.  * @throws android.content.activitynotfoundexception.  */  public void startchildactivity(string id, intent intent) {     window window = getlocalactivitymanager().startactivity(id,             intent.addflags(intent.flag_activity_clear_top));     if (window != null) {         midlist.add(id);         setcontentview(window.getdecorview());     } }  /**  * primary purpose prevent systems before  * android.os.build.version_codes.eclair calling default  * keyevent.keycode_back during onkeydown.  */  @override public boolean onkeydown(int keycode, keyevent event) {     if (keycode == keyevent.keycode_back) {         // preventing default implementation previous         // android.os.build.version_codes.eclair         finish();         return true;     }     return super.onkeydown(keycode, event); }  /**  * overrides default implementation keyevent.keycode_back  * systems call onbackpressed().  */  @override public boolean onkeyup(int keycode, keyevent event) {     if (keycode == keyevent.keycode_back) {         onbackpressed();         return true;     }     return super.onkeyup(keycode, event); }  /**  * if child activity handles keyevent.keycode_back. override ,  * add method.  */  @override public void onbackpressed() {     int length = midlist.size();     if (length > 1) {         activity current = getlocalactivitymanager().getactivity(                 midlist.get(length - 1));         current.finish();     } } } 

Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -