Ok but
onRetainNonConfigurationInstance()
is deprecated! What I must use insted of it??

On Oct 18, 12:51 pm, Piren <[email protected]> wrote:
> Orientation change will be harder to handle... see this for 
> help:http://developer.android.com/guide/topics/resources/runtime-changes.html
>
>
>
>
>
>
>
> On Thursday, October 18, 2012 12:40:49 PM UTC+2, Giosia Gentile wrote:
>
> > Thank you I will try it this evening!!
> > Please can you help me also with the screen orientation??? I used the
> > setRetainIstance(true) but it donìt work!!
>
> > On Thursday, October 18, 2012 10:08:08 AM UTC+2, Piren wrote:
>
> >>http://developer.android.com/reference/android/support/v4/view/ViewPa...)
>
> >> just set it to 2
>
> >> On Wednesday, October 17, 2012 7:30:54 PM UTC+2, Giosia Gentile wrote:
>
> >>> it is one week I try to solve this problem whitout success. Please
> >>> help me.
>
> >>> I use the tabs navigation with viewpager. This is the class where I
> >>> put the tabs and the FragmentPagerAdapter class:
> >>> public class Detail extends SherlockFragmentActivity {
>
> >>>     ViewPager  mViewPager;
>
> >>>     TabsAdapter mTabsAdapter;
>
> >>>     @Override
> >>>     public void onCreate(Bundle savedInstanceState) {
>
> >>>         super.onCreate(savedInstanceState);
>
> >>>         setContentView(R.layout.activity_main);
>
> >>>      ...
>
> >>>      ActionBar bar = getSupportActionBar();
> >>>      bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
> >>>      bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
>
> >>>      mViewPager = (ViewPager)findViewById(R.id.pager);
>
> >>>      // Add the tabs
> >>>      mTabsAdapter = new TabsAdapter(this, bar, mViewPager);
> >>>      mTabsAdapter.addTab(bar.newTab().setText(R.string.filmtab),
> >>>              FragmentFilm.class, null);
> >>>      mTabsAdapter.addTab(bar.newTab().setText(R.string.cinematab),
> >>>              FragmentCinema.class, null);
> >>>      mTabsAdapter.addTab(bar.newTab().setText(R.string.dintornitab),
> >>>              FragmentPdi.class, null);
>
> >>>      if (savedInstanceState != null) {
>
> >>> bar.setSelectedNavigationItem(savedInstanceState.getInt("tab"));
> >>>      }
>
> >>>     }
>
> >>>      @Override
> >>>         protected void onSaveInstanceState(Bundle outState) {
> >>>             super.onSaveInstanceState(outState);
> >>>             outState.putInt("tab",
> >>> getSupportActionBar().getSelectedNavigationIndex());
> >>>         }
>
> >>>      public static class TabsAdapter extends FragmentPagerAdapter
> >>>      implements ViewPager.OnPageChangeListener, ActionBar.TabListener
> >>> {
> >>>          private final Context mContext;
> >>>          private final ActionBar mBar;
> >>>          private final ViewPager mViewPager;
> >>>          private final ArrayList<TabInfo> mTabs = new
> >>> ArrayList<TabInfo>();
>
> >>>          static final class TabInfo {
> >>>              private final Class<?> clss;
> >>>              private final Bundle args;
>
> >>>              TabInfo(Class<?> _class, Bundle _args) {
> >>>                  clss = _class;
> >>>                  args = _args;
> >>>              }
> >>>          }
>
> >>>          public TabsAdapter(Detail activity, ActionBar bar, ViewPager
> >>> pager) {
> >>>              super(activity.getSupportFragmentManager());
> >>>              mContext = activity;
> >>>              mBar = bar;
> >>>              mViewPager = pager;
> >>>              mViewPager.setAdapter(this);
> >>>              mViewPager.setOnPageChangeListener(this);
> >>>          }
>
> >>>          public void addTab(ActionBar.Tab tab, Class<? extends
> >>> Fragment> clss, Bundle args) {
> >>>              TabInfo info = new TabInfo(clss, args);
> >>>              tab.setTag(info);
> >>>              tab.setTabListener(this);
> >>>              mTabs.add(info);
> >>>              mBar.addTab(tab);
> >>>              notifyDataSetChanged();
> >>>          }
>
> >>>          @Override
> >>>          public int getCount() {
> >>>              return mTabs.size();
> >>>          }
>
> >>>          @Override
> >>>          public Fragment getItem(int position) {
> >>>              TabInfo info = mTabs.get(position);
> >>>              return Fragment.instantiate(mContext,
> >>> info.clss.getName(), info.args);
> >>>          }
>
> >>>          @Override
> >>>          public void onPageScrolled(int position, float
> >>> positionOffset, int positionOffsetPixels) {
> >>>          }
>
> >>>          @Override
> >>>          public void onPageSelected(int position) {
> >>>              mBar.setSelectedNavigationItem(position);
> >>>          }
>
> >>>          @Override
> >>>          public void onPageScrollStateChanged(int state) {
> >>>          }
>
> >>>          @Override
> >>>          public void onTabSelected(Tab tab, FragmentTransaction ft) {
> >>>              Object tag = tab.getTag();
> >>>              for (int i=0; i<mTabs.size(); i++) {
> >>>                  if (mTabs.get(i) == tag) {
> >>>                      mViewPager.setCurrentItem(i);
> >>>                  }
> >>>              }
> >>>          }
>
> >>>          @Override
> >>>          public void onTabUnselected(Tab tab, FragmentTransaction ft)
> >>> {
>
> >>>          }
>
> >>>          @Override
> >>>          public void onTabReselected(Tab tab, FragmentTransaction ft)
> >>> {
>
> >>>          }
> >>>      }
> >>> }
>
> >>> The 3 fragment classes are all the same I copy here just one; In the
> >>> fragment class I use async task for download the data I need to put in
> >>> the view, I do this in the onActivityCreated method:
>
> >>> public class FragmentFilm extends SherlockFragment
> >>> {
>
> >>>     private Detail act;
>
> >>>     private DetailedRec detail_film;
> >>>     private View view;
> >>>     private String a;
>
> >>>     @Override
> >>>     public View onCreateView(LayoutInflater inflater, ViewGroup
> >>> container,
> >>>             Bundle savedInstanceState)
> >>>     {
>
> >>>         setRetainInstance(true);
> >>>         view = inflater.inflate(R.layout.tab_film_info, container,
> >>> false);
>
> >>>         return view;
> >>>     }
>
> >>>     /*
> >>>     @Override
> >>>     public void onSaveInstanceState(Bundle outState) {
> >>>         super.onSaveInstanceState(outState);
>
> >>>     }*/
>
> >>>     @Override
> >>>     public void onCreate(Bundle savedInstanceState) {
> >>>         super.onCreate(savedInstanceState);
>
> >>>         act =  (Detail) getActivity();
>
> >>>     }
>
> >>>     @Override
> >>>     public void onActivityCreated(Bundle savedInstanceState) {
> >>>         super.onActivityCreated(savedInstanceState);
> >>>         new DownloadFilmDetailAsyncTask().execute();
>
> >>>     }
>
> >>>     private class DownloadFilmDetailAsyncTask extends AsyncTask<Void,
> >>> DetailedRec, Void>
> >>>     {
>
> >>>         @Override
> >>>         protected void onPreExecute() {
>
> >>>             super.onPreExecute();
>
> >>>         }
>
> >>>         @Override
> >>>         protected void onPostExecute(Void result) {
>
> >>>             super.onPostExecute(result);
>
> >>>             ProgressBar prBar =
> >>> (ProgressBar)getView().findViewById(R.id.progressbar_film);
> >>>             prBar.setVisibility(View.GONE);
> >>>             ScrollView lay =
> >>> (ScrollView)getView().findViewById(R.id.tab_filmsummary);
> >>>             lay.setVisibility(View.VISIBLE);
>
> >>>         }
>
> >>>         @Override
> >>>         protected Void doInBackground(Void... params)
> >>>         {
> >>>             try
> >>>             {
>
> >>>                 String locale =
> >>> getResources().getConfiguration().locale.getDisplayName();
>
> >>>                 JSONObject objSend = new JSONObject();
> >>>                 objSend.put("idFilm", act.getIdFilm());
> >>>                 objSend.put("cinemaId",act.getIdCinema());
> >>>                 int ind = locale.indexOf("(");
> >>>                 String locale_send = locale.substring(0, ind-1);
> >>>                 objSend.put("locale", locale_send);
> >>>                 ArrayList<String> otherCin = new
> >>> ArrayList<String>(Arrays.asList(act.getOtherCinemas()));
> >>>                 JSONArray othCin = new JSONArray(otherCin);
> >>>                 objSend.put("otherCinemas", othCin );
> >>>                 JSONObject jsonObject =
> >>> sendAndGetJSONObject(JSON_SERVER+"JsonServer?op=getFilmbyId",objSend);
>
> >>>                 DetailedRec detail_rec = new DetailedRec();
> >>>                 //FILM
> >>>                 detail_rec.setFilmId(jsonObject.getString("filmId"));
> >>>                 detail_rec.setName(jsonObject.getString("name"));
>
> >>> detail_rec.setImageUrl(jsonObject.getString("imageUrl").replace("640",
> >>> "80"));
> >>>                 detail_rec.setActors(jsonObject.getString("actors"));
> >>>                 detail_rec.setGenre(jsonObject.getString("genre"));
>
> >>> detail_rec.setDirector(jsonObject.getString("director"));
> >>>                 detail_rec.setPlot(jsonObject.getString("plot"));
> >>>                 detail_rec.setYear(jsonObject.getString("year"));
>
> >>> detail_rec.setDuration(jsonObject.getString("duration"));
>
> >>> detail_rec.setTrailer(jsonObject.getString("trailer"));
> >>>                 detail_rec.setRating(jsonObject.getString("rating"));
>
> >>>                 detail_film = detail_rec;
> >>>                 publishProgress(detail_rec);
>
> >>>             }
> >>>             catch (IOException ignored)
> >>>             {
> >>>             }
> >>>             catch (JSONException ignored)
> >>>             {
> >>>             }
> >>>             return null;
> >>>         }
>
> >>>         @Override
> >>>         protected void onProgressUpdate(DetailedRec...
>
> ...
>
> read more »

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to