保存活动状态android

时间:2013-10-30 17:07:23

标签: android android-activity textview

当我关闭活动然后重新打开活动时,如何获取文本视图中的任何内容?

public class ViewOffense extends Activity {
    EditOffense eo = new EditOffense();
    List<String> rosterLog;
    List<String> oneRow;
    Bundle bundle;
    static String selection;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.viewoffense);

        bundle = this.getIntent().getExtras();
        if (bundle != null) {
            String selection = bundle.getString("key");
            TextView textview = (TextView) findViewById(R.id.textView2);
            textview.setText(selection);
        }
    }
}

5 个答案:

答案 0 :(得分:1)

销毁活动时,将textview值存储在共享首选项中。

    @Override
        public void onDestroy() {
            super.onDestroy();
TextView tvText = (TextView) findViewById(R.id.YOURLAYOUTGOESHERE);
            SharedPreferences.Editor prefEditor = getSharedPreferences("Preferences", Context.MODE_PRIVATE).edit();
            prefEditor.putBoolean("text", tvText .getText().toString());
            prefEditor.commit();
        }

然后在onCreate中设置共享首选项中的textview文本。

TextView tvText = (TextView) findViewById(R.id.YOURLAYOUTGOESHERE);
    SharedPreferences prefs = getSharedPreferences("Preferences", Context.MODE_PRIVATE);
    if (prefs.contains("text")){
            tvText .setText(prefs.getString("text", ""));
        }

答案 1 :(得分:0)

步骤1:使用您要存储活动的值

创建一个bean

第2步:在实例

中创建bean实例并存储活动值

第3步:保持实例通过,直到你需要状态为活动

步骤4:当返回活动时,使用bean实例值初始化活动

答案 2 :(得分:0)

您应该探索Android中可用的各种storage options,以便在启动应用程序之间保留数据。

要存储单个TextView的内容,使用SharedPreferences可能就足够了。

您可能希望将值存储在onStop()中并在onCreate()中检索它。 例如:

public class ViewOffense extends Activity {
    public static final String PREFS_NAME = "MyPrefsFile";

    @Override
    protected void onCreate(Bundle state){
       super.onCreate(state);

       // Restore String
       SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
       String savedText = settings.getString("myText", "default text");
       TextView textview = (TextView) findViewById(R.id.textView2);
       textview.setText(savedText);
    }

    @Override
    protected void onStop(){
        super.onStop();

        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
        SharedPreferences.Editor editor = settings.edit();

        TextView textview = (TextView) findViewById(R.id.textView2);
        String text = textview.getText().toString();
        editor.putString("myText", text);

        // Commit the edits!
        editor.commit();
    }
}

答案 3 :(得分:0)

TextView的当前值存储到onSaveInstanceState (Bundle outState)中的outState。然后在onRestoreInstanceState (Bundle savedInstanceState)onCreate (Bundle savedInstanceState)中,可以从savedInstanceState检索该值。

答案 4 :(得分:0)

将值存储在onSaveInstanceState(Bundle)方法中。

String value;
yourbundle.putString("key",value);

您在onSaveInstanceState中存储的值将作为参数传递给您的onCreate / onRestoreInstanceState方法默认为ie.Bundle savedInstanceState您需要的所有内容是从savedInstanceState获取值

String data = savedInstanceState.getString("key defined earlier");

并将其设置为textview

这是临时数据的解决方案。对于持久存储使用首选项或将其写入sqlite数据库。