如何从SharedPreferences将字符串插入接口?

时间:2018-07-31 06:51:56

标签: android

在我的应用程序中,我使用一些服务器响应,可以从中获取一些数据。例如,从一开始,使用我的应用程序就从登录屏幕开始,然后如果响应成功,我将进入另一个活动。从这样的响应中,我必须获取access_token,然后在以后的工作中使用它,现在,我已经设法从响应中使用以下接口从该令牌中获取该令牌:

 @Headers({"Content-type: application/json",
            "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhcGkuam9iLXNlcnZlci5uZXQiLCJleHAiOjE1MzMwMTg0MTgsInVzZXJfaWQiOjk1MzM5NjF9.MM6_H58RNH44AMWNKV8fRa6gFLofnv1RJBSAX-ayjdc"})
    @GET("/v1/message/list")
    Call<ListOfMess> getInMess(@Query("type") int type, @Query("offset") int offset);

如您所见,此类令牌以字符串格式显示,因此我从登录响应中获取了字符串:

 if (response.isSuccessful()) {
                    Toast.makeText(LoginActivity.this, "Post submitted to API.", Toast.LENGTH_LONG).show();
                    Intent intent = new Intent(LoginActivity.this, SecondScreen.class);
                    findViewById(R.id.btn_submit).getBackground().setColorFilter(Color.parseColor("#1cd000"), PorterDuff.Mode.MULTIPLY);
                    startActivity(intent);
                    saveData();

                    TextView txt = findViewById(R.id.access_token);
                    String token = Objects.requireNonNull(response.body()).getAccess_token();
                    txt.setText(token);


                    mSettings = getSharedPreferences(APP_PREFERENCES, Context.MODE_PRIVATE);
                    SharedPreferences.Editor editor = mSettings.edit();
                    editor.putString(APP_PREFERENCES_TOKEN, token);
                    editor.apply();

                    Toast.makeText(LoginActivity.this,"Text saved"+APP_PREFERENCES,Toast.LENGTH_LONG).show();


                }

您可以看到我尝试使用共享首选项中的us保存此令牌。但是现在我不知道如何将我的shared_preferences中的以下标记插入到我的界面中。我试图将以下标记插入到改型初始化中,但是没有用。因此,我有一个主意,但我不确定它的正确性。也许我可以在界面中创建一些@Path,然后在MainActivity中将以下令牌插入接口。如果我的解决方案正确,那么我的界面将如下所示:

@Headers({"Content-type: application/json"})
@GET("/v1/message/list")
Call<ListOfMess> getInMess(@Header("Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhcGkuam9iLXNlcnZlci5uZXQiLCJleHAiOjE1MzMwMTg0MTgsInVzZXJfaWQiOjk1MzM5NjF9.MM6_H58RNH44AMWNKV8fRa6gFLofnv1RJBSAX-ayjdc") String token,@Query("type") int type, @Query("offset") int offset);

,然后我必须在活动类中插入以下标记。所以,也许我的问题太不确定或我写不清楚,但是我相信你会帮助我的。

0 个答案:

没有答案