android中viewPager中的片段丢失价值
我正在片段中使用viewPager。Viewpager包含5个 名为1)常规2)臭氧3)Myzone 4)Bizzone 5)密码的碎片。 所有的片段都从json中获得了价值,并且工作良好。 第一个片段(一般)处理4个不同的api,其中3个 是专门为三个不同的纺纱机和1是得到最终的 完整视图的值 现在的问题是,我通过viewPager交换视图,并到达最后一个 片段,当我看到第一个视图时,它失去了微调器的值 它们变成了空的 这是我用来设置视图中的值的代码 公共类ProfileGeneralSetting扩展片段实现了MiFeelingBase、OnClickListener{android中viewPager中的片段丢失价值,android,json,android-viewpager,Android,Json,Android Viewpager,我正在片段中使用viewPager。Viewpager包含5个 名为1)常规2)臭氧3)Myzone 4)Bizzone 5)密码的碎片。 所有的片段都从json中获得了价值,并且工作良好。 第一个片段(一般)处理4个不同的api,其中3个 是专门为三个不同的纺纱机和1是得到最终的 完整视图的值 现在的问题是,我通过viewPager交换视图,并到达最后一个 片段,当我看到第一个视图时,它失去了微调器的值 它们变成了空的 这是我用来设置视图中的值的代码 公共类ProfileGeneralSett
public Spinner spCountryName;
public Spinner spCityName;
public Spinner spTimeZone;
private RadioGroup rg1;
private RadioButton rbEnable, rbDisable;
public Button SettingSaveGeneral;
public EditText edGeneralFullname,edGeneralEmail,edGeneralFirstName,edGeneralLastName,edGeneralMobileNumber,edGeneralAddress1,
edGeneralAddress2,edtUser_Dob,edtEducationInstitude,edtDegree,edtGrade,edtStartYear,edtEndYear,edtStream;
public int mYear;
public int mMonth;
public int mDay;
ProgressDialog mProgressDialog;
ArrayList<Country> countryList = new ArrayList<Country>();
ArrayList<Country>cityList=new ArrayList<Country>();
ArrayList<Country>timeList=new ArrayList<Country>();
GeneralSettingData generalList = new GeneralSettingData();
private GeneralSettingAdapter adapter;
private GeneralSettingAdapter2 adapter2;
private GeneralSettingAdapter3 adapter3;
//private GeneralSettingAdapter4 adapter4;
Context context;
public ImageView Usercalender;
private static final int DATE_DIALOG_ID = 0;
private String strUserID;
private int index=0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
// TODO Auto-generated method stub
View rootView = inflater.inflate(R.layout.profilesettinggeneral, container, false);
rg1 = (RadioGroup)rootView.findViewById(R.id.rg1);
spCountryName = (Spinner)rootView.findViewById(R.id.spCountryName);
spCityName = (Spinner)rootView.findViewById(R.id.spCityName);
spTimeZone = (Spinner)rootView.findViewById(R.id.spTimeZone);
edGeneralFullname = (EditText)rootView.findViewById(R.id.edGeneralFullname);
edGeneralEmail = (EditText)rootView.findViewById(R.id.edGeneralEmail);
edGeneralFirstName = (EditText)rootView.findViewById(R.id.edGeneralFirstName);
edGeneralLastName = (EditText)rootView.findViewById(R.id.edGeneralLastName);
edGeneralMobileNumber = (EditText)rootView.findViewById(R.id.edGeneralMobileNumber);
edGeneralAddress1 = (EditText)rootView.findViewById(R.id.edGeneralAddress1);
edGeneralAddress2 = (EditText)rootView.findViewById(R.id.edGeneralAddress2);
edtUser_Dob = (EditText)rootView.findViewById(R.id.edtUser_Dob);
edtEducationInstitude = (EditText)rootView.findViewById(R.id.edtEducationInstitude);
edtDegree = (EditText)rootView.findViewById(R.id.edtDegree);
edtGrade = (EditText)rootView.findViewById(R.id.edtGrade);
edtStartYear = (EditText)rootView.findViewById(R.id.edtStartYear);
edtEndYear = (EditText)rootView.findViewById(R.id.edtEndYear);
edtStream = (EditText)rootView.findViewById(R.id.edtStream);
Usercalender = (ImageView)rootView.findViewById(R.id.Usercalender);
rbEnable = (RadioButton)rootView.findViewById(R.id.rbEnable);
rbDisable = (RadioButton)rootView.findViewById(R.id.rbDisable);
SettingSaveGeneral = (Button)rootView.findViewById(R.id.SettingSaveGeneral);
SettingSaveGeneral.setOnClickListener(this);
Usercalender.setOnClickListener(this);
rbEnable.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getActivity(), "enabled", Toast.LENGTH_SHORT).show();
}
});
rbDisable.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getActivity(), "disabled", Toast.LENGTH_SHORT).show();
}
});
/*rg1.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
if(checkedId == R.id.rbEnable){
Toast.makeText(context, "enabled", Toast.LENGTH_SHORT).show();
}else if(checkedId == R.id.rbDisable){
Toast.makeText(context, "disabled", Toast.LENGTH_SHORT).show();
}
}
});*/
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
Usercalender.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dpd = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener(){
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth){
edtUser_Dob.setText(year + "-"+ (monthOfYear + 1) + "-" + dayOfMonth);
}
}, mYear, mMonth, mDay);
dpd.show();
}
});
//spCountryName.("Counrty");
APIAccess.fetchData(ProfileGeneralSetting.this, getActivity(), getActivity());
return rootView;
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
AppContoller.getInstance().pref=getActivity().getSharedPreferences(AppContoller.getInstance().PREF_NAME, 0);
strUserID=AppContoller.getInstance().pref.getString(AppContoller.getInstance().USER_ID, "0");
APIAccess.fetchData(ProfileGeneralSetting.this, getActivity(), getActivity());
savedInstanceState
/*rg1.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
if(checkedId == R.id.rbEnable){
Toast.makeText(context, "enabled", Toast.LENGTH_SHORT).show();
}else if(checkedId == R.id.rbDisable){
Toast.makeText(context, "disabled", Toast.LENGTH_SHORT).show();
}
}
});*/
}
@Override
public String httpPost() {
// TODO Auto-generated method stub
String response="";
if(index==0)
{
response=OpenConnection.callUrl(StaticData.SABAKUCH_GENERAL_SETTING_COUNTRY);
}else if(index==1)
{
response=OpenConnection.callUrl(StaticData.SABAKUCH_GENERAL_SETTING_CITY);
}else if(index==2)
{
response=OpenConnection.callUrl(StaticData.SABAKUCH_GENERAL_SETTING_TIMEZONE);
}
else if(index==3)
{
response = OpenConnection.callUrl(StaticData.SABAKUCH_GENERAL_SETTING_GETDATA+strUserID);
}
//Log.d("RespoNCEEEEEEEEE", response);
return response;
}
@Override
public String httpAfterPost(String str) {
// TODO Auto-generated method stub
if(str!=null)
{
if(index==0){
countryList=SabaKuchParse.parseCountryData(str);
if(countryList.size()>0)
{
adapter=new GeneralSettingAdapter(getActivity(), countryList);
spCountryName.setAdapter(adapter);
index=1;
APIAccess.fetchData(ProfileGeneralSetting.this, getActivity(), getActivity());
}
}else if(index==1)
{
cityList=SabaKuchParse.parseCityData(str);
if(cityList.size()>0)
{
adapter2=new GeneralSettingAdapter2(getActivity(), cityList);
spCityName.setAdapter(adapter2);
index=2;
APIAccess.fetchData(ProfileGeneralSetting.this, getActivity(), getActivity());
}
}else if(index==2)
{
timeList = SabaKuchParse.parseTimeData(str);
if(timeList.size()>0){
adapter3 = new GeneralSettingAdapter3(getActivity(),timeList);
spTimeZone.setAdapter(adapter3);
index=3;
APIAccess.fetchData(ProfileGeneralSetting.this, getActivity(), getActivity());
}
}
else if(index==3)
{
generalList = SabaKuchParse.parseFullData(str);
edGeneralFullname.setText(generalList.strFname);
edGeneralEmail.setText(generalList.strEmail);
String tt = generalList.strEmail;
Log.d("helloooooooooooooooooooo", tt);
edGeneralFirstName.setText(generalList.strFname);
edGeneralLastName.setText(generalList.strlname);
edGeneralMobileNumber.setText(generalList.strContact);
edGeneralAddress1.setText(generalList.strAddress1);
edGeneralAddress2.setText(generalList.strAddress2);
edtUser_Dob.setText(generalList.strDob);
edtEducationInstitude.setText(generalList.arr.get(0).strSchool);
edtDegree.setText(generalList.arr.get(0).strDegree);
edtGrade.setText(generalList.arr.get(0).strGrade);
edtStartYear.setText(generalList.arr.get(0).strFrom_date);
edtEndYear.setText(generalList.arr.get(0).strTo_date);
edtStream.setText(generalList.arr.get(0).strField_study);
String ss = generalList.strTime_zone;
Log.d("jhakkasss", ss);
for(int i=0;i<timeList.size();i++)
{
if( timeList.get(i).strTimezoneid.equalsIgnoreCase(generalList.strTime_zone))
{
spTimeZone.setSelection(i);
}
}
for(int i=0;i<countryList.size();i++)
{
if( countryList.get(i).strCountryid.equalsIgnoreCase(generalList.strCountry_id))
{
spCountryName.setSelection(i);
}
}
for(int i=0;i<cityList.size();i++)
{
if(cityList.get(i).strCityid.equalsIgnoreCase(generalList.strCity_id))
{
spCityName.setSelection(i);
}
}
}else if(index==5){
}
}
return null;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.SettingSaveGeneral:
index =5;
APIAccess.fetchData(ProfileGeneralSetting.this, getActivity(), getActivity());
break;
default:
break;
}
}
}
公共微调器spCountryName;
公共微调器spCityName;
公共微调器时区;
私人放射组rg1;
专用单选按钮rbEnable,rbDisable;
公共按钮设置SaveGeneral;
公共编辑文本edGeneralFullname、edGeneralEmail、edGeneralFirstName、edGeneralLastName、edGeneralMobileNumber、edGeneralAddress1、,
EDGENERAAddress2、edtUser\U Dob、EDT教育机构、EDT学位、EDT等级、EDT开始时间、EDT结束时间、EDT流;
公共内耳;
公共卫生;
公共国际日;
进程对话框;
ArrayList countryList=新的ArrayList();
ArrayListcityList=新的ArrayList();
ArrayListtimeList=新的ArrayList();
GeneralSettingData generalList=新的GeneralSettingData();
专用通用设置适配器;
专用通用设置适配器2适配器2;
专用通用设置适配器3适配器3;
//专用通用设置适配器4适配器4;
语境;
公共图像视图用户日历;
私有静态最终整数日期对话框ID=0;
私有字符串strUserID;
私有整数指数=0;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
//TODO自动生成的方法存根
视图根视图=充气机。充气(R.layout.profilesettinggeneral,container,false);
rg1=(放射组)rootView.findviewbyd(R.id.rg1);
spCountryName=(微调器)rootView.findviewbyd(R.id.spCountryName);
spCityName=(微调器)rootView.findviewbyd(R.id.spCityName);
spTimeZone=(微调器)rootView.findviewbyd(R.id.spTimeZone);
edGeneralFullname=(EditText)rootView.findViewById(R.id.edGeneralFullname);
edGeneralEmail=(EditText)rootView.findViewById(R.id.edGeneralEmail);
edGeneralFirstName=(EditText)rootView.findViewById(R.id.edGeneralFirstName);
edGeneralLastName=(EditText)rootView.findViewById(R.id.edGeneralLastName);
edGeneralMobileNumber=(EditText)rootView.findViewById(R.id.edGeneralMobileNumber);
edGeneralAddress1=(EditText)rootView.findViewById(R.id.edGeneralAddress1);
edGeneralAddress2=(EditText)rootView.findViewById(R.id.edGeneralAddress2);
edtUser_Dob=(EditText)rootView.findviewbyd(R.id.edtUser_Dob);
edtEducationInstitude=(EditText)rootView.findViewById(R.id.edtEducationInstitude);
edtdegate=(EditText)rootView.findViewById(R.id.edtdegate);
edtGrade=(EditText)rootView.findViewById(R.id.edtGrade);
edtStartYear=(EditText)rootView.findViewById(R.id.edtStartYear);
edtEndYear=(EditText)rootView.findViewById(R.id.edtEndYear);
edtStream=(EditText)rootView.findViewById(R.id.edtStream);
Usercalender=(ImageView)rootView.findviewbyd(R.id.Usercalender);
rbEnable=(单选按钮)rootView.findviewbyd(R.id.rbEnable);
rbDisable=(单选按钮)rootView.findviewbyd(R.id.rbDisable);
SettingSaveGeneral=(按钮)rootView.findViewById(R.id.SettingSaveGeneral);
SettingSaveGeneral.setOnClickListener(此);
Usercalender.setOnClickListener(此);
rbEnable.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
Toast.makeText(getActivity(),“enabled”,Toast.LENGTH_SHORT.show();
}
});
rbDisable.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
Toast.makeText(getActivity(),“disabled”,Toast.LENGTH_SHORT.show();
}
});
/*rg1.setOnCheckedChangeListener(新的OnCheckedChangeListener(){
@凌驾
检查更改后的公共无效(RadioGroup组,int checkedId){
//TODO自动生成的方法存根
if(checkedId==R.id.rbEnable){
Toast.makeText(上下文“已启用”,Toast.LENGTH_SHORT.show();
}else if(checkedId==R.id.rbDisable){
Toast.makeText(上下文“禁用”,Toast.LENGTH_SHORT.show();
}
}
});*/
最终日历c=Calendar.getInstance();
mYear=c.get(日历年);
mMonth=c.get(日历月);
mDay=c.get(日历,月的第天);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
最终日历c=Calendar.getInstance();
mYear=c.get(日历年);
mMonth=c.get(日历月);
mDay=c.get(日历,月的第天);
DatePickerDialog dpd=new DatePickerDialog(getActivity(),new DatePickerDialog.OnDateSetListener()){
@凌驾
公共无效onDateSet(日期选择器视图,整数年,
int monthOfYear,int dayOfMonth){
edtUser_Dob.setText(年+“-”+(月+1)+“-”+月日);
}
},mYear,Ammonth,mDay);
dpd.show();
}
});
//spCountryName.(“国家”);
fetchData(ProfileGeneralSetting.this,getActivity(),getActivity());
返回rootView;
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
AppContoller.getInstance().pref=getActivity().GetSharedReferences(AppCo
public class ProfileSettingFragment extends android.support.v4.app.Fragment implements TabListener {
private ViewPager mPager;
private MyPageAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View rootView = inflater.inflate(R.layout.profile_setting_fragment, container, false);
mPager=(ViewPager)rootView.findViewById(R.id.pager);
mPager.setOffscreenPageLimit(2);
adapter=new MyPageAdapter(getChildFragmentManager());
mPager.setAdapter(adapter);
TabPageIndicator indicater=(TabPageIndicator)rootView.findViewById(R.id.indicator1);
indicater.setViewPager(mPager);
indicater.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
/*mPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});*/
/*actionBar.addTab(actionBar.newTab().setText("Home").setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("MiZone").setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("Top Trending").setTabListener(this));
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);*/
return rootView;
}
private class MyPageAdapter extends FragmentStatePagerAdapter
{
private List<android.support.v4.app.Fragment> fragments;
public MyPageAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
this.fragments=new ArrayList<android.support.v4.app.Fragment>();
fragments.add(new ProfileGeneralSetting());
fragments.add(new ProfileOzoneSetting());
fragments.add(new ProfileMyzoneSetting());
fragments.add(new ProfileBizzoneSetting());
fragments.add(new ProfilePasswordSetting());
}
@Override
public android.support.v4.app.Fragment getItem(int arg0) {
// TODO Auto-generated method stub
return fragments.get(arg0);
}
@Override
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
switch (position) {
case 0:
return "General";
case 1:
return "Ozone";
case 2:
return "MyZone";
case 3:
return "BizZone";
case 4 :
return "Password Setting";
}
return null;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return fragments.size();
}
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
mPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
}
@Override
public void onSavedInstanceState(Bundle outstate) {
outState.putSerializable("countryList", (Serializable) countryList); // if Country implements Serializable
// or
outState.putParcelable("countryList", (Parcelable) countryList);
super.onSavedInstanceState(outState);
}
countryList = (ArrayList<Country>) savedInstanceState.getSerializable("countryList");
countryList = (ArrayList<Country>) savedInstanceState.getParcelableArrayList("countryList");
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroyView();
index =0;
APIAccess.fetchData(ProfileGeneralSetting.this, getActivity(), getActivity());
}