0

当我关闭活动然后重新打开它时,如何让文本视图中的内容留在那里?

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);
        }
    }
}
4

5 回答 5

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", ""));
        }
于 2013-10-30T17:16:54.687 回答
0

第 1 步:使用要存储的活动值创建一个 bean

第 2 步:创建 bean 实例并将活动值存储在实例中

第 3 步:保持实例通过,直到您需要状态处于活动状态

第4步:回到活动时,用bean实例值初始化活动

于 2013-10-30T17:12:48.023 回答
0

您应该探索 Android 中可用的各种存储选项,以便在应用程序启动之间保存数据。

对于存储单个 的内容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();
    }
}
于 2013-10-30T17:12:59.860 回答
0

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

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

您存储在 onSaveInstanceState 中的值将作为参数提供给您,默认情况下传递给您的 onCreate/onRestoreInstanceState 方法,即。Bundle savedInstanceState 您需要做的就是从 savedInstanceState 获取值

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

并将其设置为您的文本视图

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

于 2013-10-30T18:18:36.357 回答
0

TextView将to的当前值存储outStateonSaveInstanceState (Bundle outState)中。然后在onRestoreInstanceState (Bundle savedInstanceState)onCreate (Bundle savedInstanceState)中,可以从savedInstanceState.

于 2013-10-30T17:22:20.460 回答