GetSharedPreferences 获取会话 ID

我在登录用户 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 );

}

http://img2.mukewang.com/647c33ad00012fa706350120.jpg

获取共享首选项代码


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

}


回首忆惘然
浏览 122回答 1
1回答

料青山看我应如是

不要在那里使用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");
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java