如何使用backstack方法或其他任何方法在onPause()和onResume()方法之间保存片段

时间:2015-03-05 20:37:10

标签: android

my HospitalFragment class...

package info.hospitals.uttarakhand;

import android.app.ActionBar;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.AdapterView;
import android.widget.Toast;


import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;


public class HospitalsFragment extends Fragment {
    Spinner spinner, spinner2, spinner3;
    DatabaseHandler db;
    View rootView;
    WebView myWebView;
    public Fragment mMyFragment;
    private static final String TAG = "Hospital fragment";



    public void onStart() {
        super.onStart();
        Log.i(TAG, "onStart");

    }

    public void onResume() {
        super.onResume();
        Log.i(TAG, "onResume");
         //getFragmentManager().findFragmentByTag("Hospitals").getRetainInstance();
    }

    public void onPause() {
        super.onPause();
        Log.i(TAG, "onPause");


        //getFragmentManager().findFragmentByTag("Hospitals").setRetainInstance(true);
    }

    public void onStop() {
        super.onStop();
        Log.i(TAG, "onStop");
    }


    public void onDestroy() {
        super.onDestroy();
        Log.i(TAG, "onDestroy");
    }
    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        Log.i("Hospital fragment", "In frag's on save instance state ");
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.i("Hospital fragment", "In frag's on create instance state ");
        //myWebView.saveState(savedInstanceState);
    }

    @Override
    public View onCreateView( final LayoutInflater inflater, final ViewGroup container,
                             Bundle savedInstanceState) {
        Log.i("Hospital Fragment", "yaaarrrr");
        if(savedInstanceState!=null){
            Log.i("Hospital Fragment", "kya yaaarrrr");
            myWebView.restoreState(savedInstanceState);
        }else {
            rootView = inflater.inflate(R.layout.fragment_hospitals, container, false);
            loadSpinnerData();
            final Button hospitalButton = (Button) rootView.findViewById(R.id.hospitalButton);
            hospitalButton.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    // Perform action on click
                    FragmentManager fragmentManager = getFragmentManager();
                    //Fragment frag = getSupportFragmentManager().findFragmentByTag(PAGER_TAG);
                    Toast.makeText(getActivity().getBaseContext(), "hello", Toast.LENGTH_SHORT).show();
                    HospitalFragmentInfo fragment2 = new HospitalFragmentInfo();
                    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.relativeLayout, fragment2);
                    //fragmentTransaction.hide(myFrag);
                    fragmentTransaction.addToBackStack(null);
                    fragmentTransaction.commit();
                    //fragmentTransaction.hide(myFrag);
                    //((MyFrag.MyFragInterface)getActivity()).needsHide();
                }
            });
        }  //rootView = inflater.inflate(R.layout.fragment_hospital_info, container, false);

        return rootView;
    }



    private void loadSpinnerData(){
        // Reading all district
        db = new DatabaseHandler(getActivity());
        Log.d("Reading: ", "Reading all district..");
        List<District> district = db.getAllDistrict();
        ArrayList<String> spinner_data = new ArrayList<String>();
        final ArrayList<String> spinner_dis_id = new ArrayList<String>();
        spinner_data.add("Select District");
        spinner_dis_id.add("");

        for (District dst : district) {
            spinner_data.add(dst.getDisName());
            spinner_dis_id.add(dst.getDisID());
        }
         spinner = (Spinner) rootView.findViewById(R.id.spinner);
        // Creating adapter for spinner
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity().getBaseContext(),
                android.R.layout.simple_spinner_item, spinner_data);
        // Drop down layout style - list view with radio button
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        // attaching data adapter to spinner
        spinner.setAdapter(dataAdapter);
        //spinner.setOnItemSelectedListener(dataAdapter);


        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    @Override
                    public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) {
                           Log.d("Reading: ", "Reading all city..");
                             List<City> city = db.getAllCity(spinner_dis_id.get(position));
                            ArrayList<String> spinner2_data = new ArrayList<String>();
                            ArrayList<String> spinner2_city_id = new ArrayList<String>();
                            spinner2_data.add("Select City");
                            spinner2_city_id.add(" ");
                            for (City ct : city) {
                            spinner2_data.add(ct.getCityName());
                            spinner2_city_id.add(ct.getCityID());
                            }
                            spinner2 = (Spinner) rootView.findViewById(R.id.spinner2);
                        // Creating adapter for spinner
                            ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(getActivity().getBaseContext(),
                                 android.R.layout.simple_spinner_item, spinner2_data);
                        // Drop down layout style - list view with radio button
                            dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                        // attaching data adapter to spinner
                            spinner2.setAdapter(dataAdapter2);
                            //Toast.makeText(getActivity().getBaseContext(), spinner.getItemAtPosition(position)+"", Toast.LENGTH_SHORT).show();
                     }

                    @Override
                    public void onNothingSelected(AdapterView<?> arg0) {
                    }
        });
        // end of spinnerItemSelected
    } //end of loadspinnerdata

} //end of hospitalfragment

///////// ========================

我有viewpager和三个标签,上面有一个片段。当我在选项卡之间切换时,先前的选项卡停止并再次启动但我想保存当前状态并再次恢复它。 http://developer.android.com/guide/components/fragments.html

0 个答案:

没有答案