如何在android中保存我的Activity数据?

时间:2013-06-20 07:58:28

标签: android android-lifecycle

在我的应用程序中,我有两个活动。在第一个活动中我有两个微调器,当我在其中设置微调器值并转到下一个Activity时。当我返回到我的第一个活动时,数据将被刷新。我想要什么这里是我想看看由privious设置的价值。我怎么做。请任何人帮助我。

这里我的Activity生命周期叫做bellow:

1)当我从Activity1移动到Activity2

的onPause()

的onStop()

2)当我回到我的第一个活动时

在onStart()

的onResume()

我已经在onSaveInstance状态中保存了值,但是没有调用onRestoreInstance状态。我的代码是:@Override

protected void onSaveInstanceState(Bundle outState) {
        // TODO Auto-generated method stub
        super.onSaveInstanceState(outState);
        strAutoCompleteValue = autoPatientList.getSelectedItem().toString();
        strSpinnerAppointment = selectAppointment.getSelectedItem().toString(); 
        outState.putString("PatientName", strAutoCompleteValue);
        outState.putString("AppointmentDate", strSpinnerAppointment);

         Toast.makeText(this, "onSaved", 3000).show();
    }   

@Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onRestoreInstanceState(savedInstanceState);
        String pName = savedInstanceState.getString("PatientName");
        String appDate = savedInstanceState.getString("AppointmentDate");

       Toast.makeText(this, "onRestore", 3000).show();
    }

提前感谢。

4 个答案:

答案 0 :(得分:1)

使用onSaveInstanceState 将微调器选择保存到捆绑包。然后在onCreate(Bundle)重新创建活动时,从包中获取数据以重置微调器。

答案 1 :(得分:0)

如果您想对Android进行编程,您应该查看Google文档,因为有很多关于此类常见任务的信息。例如,此处包含此特定问题:http://developer.android.com/guide/topics/data/data-storage.html

您还可以在查看Shared Prefernces Section时找到示例代码。

答案 2 :(得分:0)

您应该实施onSaveInstanceState将状态保存到Bundle中并实施onRestoreInstanceStateonCreate以恢复您的状态。

答案 3 :(得分:0)

  

试试这个

Spinner Spinner_ = (Spinner) findViewById(R.id.Spinner_);

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) 
 {
            // TODO Auto-generated method stub
Spinner recent_Spinner = (Spinner) arg0;
Integer selected_Spinner_ = Spinner_.getSelectedItemPosition();
nw_global.set_Spinner_(selected_Spinner_.toString());
 }
 public void onNothingSelected(AdapterView<?> arg0) 
  {
    // TODO Auto-generated method stub
 }
if (nw_global.get_Spinner_() != null && !nw_global.get_Spinner_().isEmpty())
    {
        Spinner_.setSelection(Integer.parseInt(nw_global.get_Spinner_().replace("'", "")));
    } 
    else
    {
        Spinner_.setSelection(0);
    }
  

在nw_global中执行此操作

public class nw_global extends Application {

private static String scale_spinner;
public static void set_Spinner_(String i) {
    // TODO Auto-generated method stub
    nw_global.scale_spinner = i;
}
public static String get_Spinner_(){

    return scale_spinner;
    }
 }
  

这里只是示例代码..希望它能正常工作