【问题标题】:How do I save the state of my activity? [duplicate]如何保存我的活动状态? [复制]
【发布时间】:2013-03-25 14:57:06
【问题描述】:

如何保存我的Activity 的方式,以便在使用后退按钮关闭并恢复时,它与关闭时的方式相同。

这是我的Activity 代码:

public class Levels extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);
        setContentView(R.layout.levels);

        final EditText anstext1 = (EditText) findViewById(R.id.anstext1);
        Button button1 = (Button) findViewById(R.id.button1);

        button1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {   
                 String result = anstext1.getText().toString();
                 if(result.equals("they"))
                     setContentView(R.layout.social);
                 else 
                   Toast.makeText(getApplicationContext(), "Wrong", Toast.LENGTH_LONG).show();
            }
        });
        }
}

【问题讨论】:

  • 如果您指的是保存实例状态,那应该已经可以了。如果您希望在用户按下(或以其他方式完成活动)时保存在 EditText 中输入的信息,这取决于底层数据源是什么。一个API?本地存储?

标签: android android-activity bundle


【解决方案1】:

您将不得不实现 onSavedInstanceState() 并使用您正在显示的视图的 int 填充它。

然后,在您的 onCreate(Bundle savedInstanceState) 方法中,您将从包中挖掘 int 并将您的内容视图设置为它。

public class yourActivity extends Activity {

    private static final String KEY_STATE_VIEW_ID = "view_id";
    private int _viewId = R.layout.levels;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        if (savedInstanceState != null) {
            if (savedInstanceState.containsKey(KEY_STATE_VIEW_ID) {
                _viewId = savedInstanceState.getInt(KEY_STATE_VIEW_ID);
            }
        }
        setContentView(_viewId);
        // in your onClick set viewId to R.layout.social
    }

    @Override
    public void onSaveInstanceState(Bundle savedInstanceState){
        super.onSaveInstanceState(savedInstanceState);
        savedInstanceState.putInt(KEY_STATE_VIEW_ID, _viewId);
    }
}

可以在此处找到示例:http://www.how-to-develop-android-apps.com/tag/onsaveinstancestate/

【讨论】:

    猜你喜欢
    • 2014-08-05
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    相关资源
    最近更新 更多