【问题标题】:How to add values from sharedpreferences to cardview in android?如何在android中将sharedpreferences中的值添加到cardview?
【发布时间】:2018-09-22 02:53:45
【问题描述】:

我正在使用共享偏好来存储用户详细信息。现在我想从共享首选项中获取价值并将其显示在卡片视图中。我用过

onBindViewHolder(final MyViewHolder holder,final int position) 

传递数据的方法。如何在适配器类中添加共享首选项?

【问题讨论】:

    标签: android sharedpreferences


    【解决方案1】:

    您可以通过使用它来获得价值,然后您可以与您的组件绑定

    Context context = getActivity();
        SharedPreferences sharedPref = context.getSharedPreferences(
                getString(R.string.preference_file_key), Context.MODE_PRIVATE);
    

    【讨论】:

      【解决方案2】:

      要获取 SharedPreferences 的实例,您需要上下文。将活动/片段的上下文传递给您的适配器。获得上下文后,获取 SharedPreferences 实例,如下所示:

      SharedPreferences sharedPref = context.getSharedPreferences(
              getString(R.string.preference_file_key), Context.MODE_PRIVATE);
      

      然后您可以使用 sharedPref 访问您的用户详细信息。

      如果您在应用级别维护一个 SharedPreferences 实例会更好,这样您就不会在任何需要它的地方创建新实例。

      【讨论】:

        【解决方案3】:
        private SharedPreferences preferences;
        

        在构造函数中:

        preferences = mActivity.getSharedPreferences("pref_name", Context.MODE_PRIVATE);
        

        现在您可以在 onBindViewHolder 中访问它

        【讨论】:

          【解决方案4】:

          由于共享首选项用于存储键值对,并且我假设您将 cardview 与 recyclerview 一起使用,因此您可能需要值列表。我认为这是不好的做法,如果您需要数据,您可以将 sqlite 用于相同目的从数据库中获取,否则您可以动态获取表单 api(如果您的应用有后端)。

          您可以使用以下代码从共享偏好中获取价值

          SharedPreferences shared = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
          String value = (shared.getString(key, ""));
          

          并将此字符串设置为 cardviews 值。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-07-06
            • 1970-01-01
            • 1970-01-01
            • 2018-06-08
            • 2019-08-13
            • 1970-01-01
            • 2018-09-18
            相关资源
            最近更新 更多