【问题标题】:Shared Preferences Android共享偏好 Android
【发布时间】:2014-04-24 13:08:49
【问题描述】:

我有以下问题:

我编写了一个包含 2 个活动的 android 应用程序。第一个Activity 是主要活动,第二个是设置。

在设置Activity 中,您可以在EditText 框中输入您的姓名,该姓名应显示在第一个Activity 作为问候语。

我怎样才能以一种非常简单的方式做到这一点?

【问题讨论】:

  • 查看developer.android.com上的指南
  • 您可以在本教程中阅读所有相关信息:vogella.com/tutorials/AndroidFileBasedPersistence/…
  • 如果你想要一种“设置”活动,我认为了解偏好/偏好活动是一种简单/好方法。考虑到您正在开始使用 android,我发现这对新手非常有用且吸引人:link。我为您提供了播放列表中“第一个”视频的链接,用于学习偏好。在您了解所有偏好之前,应该只需要再看几个视频。
  • 你问了2个问题:1.如何在activity之间传递值? 2. 如何在 SharedPreferences 中存储和恢复值?首选项用于更长时间的使用,以保留您可以在重新启动后请求的值。要在活动之间传递值,您可以使用 Bundle/arguments。也许有帮助。

标签: android android-activity sharedpreferences


【解决方案1】:

你有两种方法。

第一名:onActivityResult

在主要活动中:

使用startActivityForResult(intent, ACTIVITY2)

并添加此方法

@Override
protected void onActivityResult (int requestCode, int resultCode, Intent intent)
{
    if (resultCode == Activity.RESULT_OK)
    {
        String string_1 = intent.getStringExtra ("my_value_from_second_activity", "");
    }
}

在设置活动中:

Intent intent = new Intent ();
intent.putExtra ("my_value_from_second_activity", "hello");
activity.setResult (Activity.RESULT_OK, intent);

二:SharedPreferences,好办法

设置活动:

SharedPreferences settings = getSharedPreferences("config", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("my_value", edttext.getText().toString());
editor.commit();

主要活动:

SharedPreferences settings = getSharedPreferences("config", 0);
String value        = settings.getString("my_value", "");

【讨论】:

    【解决方案2】:

    你想和SharedPreferences一起做吗?这是您从设置活动中保存数据的方式。添加一个按钮以保存您的首选项,一旦您介绍了名称并将此代码放在点击侦听器上:

    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    Editor editor = sharedPreferences.edit();
    editor.putString("NAME", yourEditText.getText().toString());
    editor.commit();
    

    然后在您的主要活动中,添加一个按钮和一个文本视图以显示名称。将以下代码添加到按钮中:

    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    String name = sharedPreferences.getString("NAME", null);
    yourTextView.setText(name); //Add the name to your textview
    

    希望对你有帮助!!

    【讨论】:

      【解决方案3】:

      您可以通过意图将数据从一个活动传递到另一个活动 您还可以使用带有静态变量的常量类来存储值 并共享 prefrenc 存储数据,直到 apk 是安装程序,所以你可以使用一个

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-17
        • 2019-06-20
        • 2012-10-24
        • 2019-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多