为了账号安全,请及时绑定邮箱和手机立即绑定

GetSharedPreferences 获取会话 ID

GetSharedPreferences 获取会话 ID

回首忆惘然 2023-06-04 11:26:30
我在登录用户 ID 和适配器 Java 访问中有一个获取共享首选项,但红线显示失败getActivity()。适配器.java代码public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {     View view = LayoutInflater.from(context).inflate(R.layout.siparisitemlayout,parent,false);    getSharedPreferences = new GetSharedPreferences(getActivity());    kurye_id=getSharedPreferences.getSession().getString("id",null);     return new ViewHolder(view );}获取共享首选项代码public GetSharedPreferences(Activity activity){    this.activity=activity;}public SharedPreferences getSession(){    sharedPreferences = activity.getApplicationContext().getSharedPreferences("",0);    return  sharedPreferences;}public void setSession(String id,String username){    sharedPreferences = activity.getApplicationContext().getSharedPreferences("",0);    SharedPreferences.Editor editor = sharedPreferences.edit();    editor.putString("id",id);    editor.putString("username",username);    editor.commit();}
查看完整描述

1 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

不要在那里使用getActivity()....使用context。


像这样更改您的代码:


 getSharedPreferences = new GetSharedPreferences(context);

首先还要检查:GetSharedPreferences 类是否具有用于活动的参数化构造函数?


从适配器获取 SharedPreferences 字符串值


通过构造函数在适配器中传递调用活动的上下文,然后使用该上下文:


  Context context;

    public ConversationsAdapter(Context context,ConversationsAdapter.ConversationOnClickHandler conversationOnClickHandler) {

       this.context=context;

       mConversationOnClickHandler = conversationOnClickHandler;

    }

现在在你的适配器中你可以这样做:


SharedPreferences preferences = context.getSharedPreferences("my_preference", Context.MODE_PRIVATE);

String id= preferences.getString("id_key", "default_value");


查看完整回答
反对 回复 2023-06-04
  • 1 回答
  • 0 关注
  • 121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信