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