我正在尝试构建一个应用程序,它有一个带有按钮的开始屏幕,可以进行多种不同的活动。在开始屏幕之后的一个活动中,我得到了我想在另一个后续活动中使用的int值。从我所看到的值来看,通常在使用bundle和intents的活动之间传递值,如下所示:
Intent i = new Intent(this,ActivityTwo.class); AutoCompleteTextView textView =(AutoCompleteTextView)findViewById(R.id.autocomplete); String getrec = textView.getText()。toString();
//创建捆绑包 Bundle bundle = new Bundle();
//将您的数据添加到捆绑包中 bundle.putString(“stuff”,getrec);
//将包添加到意图中 i.putExtras(束);
//触发第二个活动 startActivity(ⅰ);
并在第二个中添加:
//获取捆绑包 Bundle bundle = getIntent()。getExtras();
//提取数据...... String stuff = bundle.getString(“stuff”);
但是我不希望我的第三个活动从第二个活动开始,有没有办法发送一个值而不启动它将被使用的其他活动?如果不是,我应该将值传递给开始屏幕活动,并从那里传递到另一个活动,如果是,如何?
答案 0 :(得分:1)
有几种方法可以在Android中存储数据。根据数据类型的不同,可能适用不同的情况:
将数据存储在键值对中。这是一些代码
保存价值:
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
editor.commit();
检索值:
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
这是一个用于存储信息Here's教程的关系数据库。
我已经详细介绍了适用于这种情况的两个问题,但您可以查看其余部分https://developer.android.com/guide/topics/data/data-storage.html
答案 1 :(得分:0)
你可以声明公共静态变量并在app中的任何地方访问它,但这不是一个好习惯尝试使用。另一种方法是您可以使用共享首选项来存储该值
答案 2 :(得分:0)
似乎您希望在整个应用程序中保留数据。
读入SQLite数据库或领域数据库。
我有更多使用Realm数据库的经验,因此这将是我的选择。