0

这是我的一些代码MainActivity..

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    updateConnectedFlags();
    SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
    Editor editor = settings.edit();
    if(getSharedData("listPref").equals("")){
        editor.putString("listPref", "mode2"); 
    }
    if(getSharedData("listNetwork").equals("")){
        editor.putString("listNetwork", "Any"); 
    }
    if(getSharedData("updatePref").equals("")){
        editor.putString("updatePref", "300"); 
    }
   editor.commit();

   if(getSharedData("regStatus").equals(""))
   {
    setContentView(R.layout.activity_registration);

   }
   else if(getSharedData("loginStatus").equals(""))
   {
    if(getSharedData("rememberMe").equals("")){

        setContentView(R.layout.activity_login);
    }
    else{//if not remembered
        setContentView(R.layout.activity_login);
        EditText txtUserGet = (EditText) findViewById(R.id.txtUser);
        txtUserGet.setText(getSharedData("user"));

        EditText txtPasswordGet = (EditText) findViewById(R.id.txtPassword);
        txtPasswordGet.setText(getSharedData("password"));
    }   
   }
   else//If login status true
   {
    sPref=getSharedData("listNetwork");
        if (((sPref.equals(ANY)) && (wifiConnected || mobileConnected))|| ((sPref.equals(WIFI)) && (wifiConnected))) 
        {
                mode=getSharedData("listPref");
                LocationManager locationManager =(LocationManager) getSystemService(Context.LOCATION_SERVICE);
                final boolean gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
                int time =Integer.parseInt(getSharedData("updatePref"));
                time=time/60;
                if (!gpsEnabled) {
                    buildToast("Gps not enabled");
                }
                else//If GPS enabled
                {
                    if(mode.equals("mode2"))
                    {
                        //buildText("Nothing here",15);
                        setContentView(R.layout.activity_main_mode2);
                        if(time==0){
                            buildToast("Application will track the Position of your phone and Update it to Server per "+getSharedData("updatePref")+" Seconds");
                        }
                        else{//Just checking HRS / SECs
                        buildToast("Application will track the Position of your phone and Update it to Server per "+time+" Minutes");
                        }

                            gpsLocation =requestUpdatesFromProvider(LocationManager.GPS_PROVIDER, 0);
                            mapView = (MapView) findViewById(R.id.mapView);

                              // enable Street view by default
                              mapView.setStreetView(true);
                              // enable to show Satellite view
                              mapView.setSatellite(true);
                              // enable to show Traffic on map
                              // mapView.setTraffic(true);
                              mapView.setBuiltInZoomControls(true);
                              mapController = mapView.getController();
                              mapController.setZoom(16); 

                    }

                }//if GPS enabled

        }
        else
        {

            setContentView(R.layout.error_layout);
            TextView tv = (TextView) findViewById(R.id.errorMsgTv);
            tv.setTextSize(15);
            if((!wifiConnected) && (mobileConnected)){
            tv.setText("Wifi not Connected");
            }
            else if((!wifiConnected) || (!mobileConnected)){
            tv.setText("Neither Wifi Nor GPRS/3G connected");
            }
            buildToast("Unable to Connect.Please check settings");
        }


    }


}
@Override
protected void onStart() {
    super.onStart();
}

@Override
protected void onResume() {
    super.onResume();
}

我的应用程序也有一个SettingsActivity. 每当我选择SettingsActivity并对其进行任何更改时preference.xmlMainActivity 都不会根据更改的偏好进行更新,但是当我更改方向时,一切都是最新的..可能的原因是什么???

4

1 回答 1

0

似乎您的设置仅在MainActivity创建时才被读取。如果您旋转屏幕,则会重新创建 Activity 并再次读取您的设置。

onCreate您可以将读取设置的应用程序部分onResumeMainActivity. SettingsActivity如果您从 切换回,则设置将被更新MainActivity

于 2013-03-06T10:23:32.150 回答