在不同活动中使用值

时间:2017-01-19 19:57:26

标签: java android android-intent

我正在尝试构建一个应用程序,它有一个带有按钮的开始屏幕,可以进行多种不同的活动。在开始屏幕之后的一个活动中,我得到了我想在另一个后续活动中使用的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”);

但是我不希望我的第三个活动从第二个活动开始,有没有办法发送一个值而不启动它将被使用的其他活动?如果不是,我应该将值传递给开始屏幕活动,并从那里传递到另一个活动,如果是,如何?

3 个答案:

答案 0 :(得分:1)

有几种方法可以在Android中存储数据。根据数据类型的不同,可能适用不同的情况:

1。共享首选项

将数据存储在键值对中。这是一些代码

保存价值:

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

2。 SQLite数据库

这是一个用于存储信息Here's教程的关系数据库。

我已经详细介绍了适用于这种情况的两个问题,但您可以查看其余部分https://developer.android.com/guide/topics/data/data-storage.html

答案 1 :(得分:0)

  

你可以声明公共静态变量并在app中的任何地方访问它,但这不是一个好习惯尝试使用。另一种方法是您可以使用共享首选项来存储该值

答案 2 :(得分:0)

似乎您希望在整个应用程序中保留数据。

读入SQLite数据库或领域数据库。

我有更多使用Realm数据库的经验,因此这将是我的选择。

https://sqlite.org/

https://realm.io/docs/java/latest/