1
我有这样的凌空GET请求类:传递字符串从片段到非活动类
public class VolleyGetHeaders {
private static final String TAG = "VolleyGet";
private static VolleyGetHeaders instance = null;
//for Volley API
public RequestQueue requestQueue;
private VolleyGetHeaders(Context context)
{
requestQueue = Volley.newRequestQueue(context.getApplicationContext());
return;
}
public static synchronized VolleyGetHeaders getInstance(Context context)
{
if (null == instance)
instance = new VolleyGetHeaders(context);
return instance;
}
public static synchronized VolleyGetHeaders getInstance()
{
if (null == instance)
{
throw new IllegalStateException(VolleyGetHeaders.class.getSimpleName() +
" is not initialized, call getInstance(...) first");
}
return instance;
}
public void VolleyGETHeaders(String domain, String api, final CustomListener<String> listener){
StringRequest sr = new StringRequest(Request.Method.GET, domain +api,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.e("HttpClient", "success! response: " + response);
if(null != response)
listener.getResult(response);
return;
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (null != error.networkResponse)
{
Log.d(TAG + ": ", "Error Response code: " + error.networkResponse.statusCode);
//listener.getResult(false);
}
}
})
{
@Override
public Map<String,String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers= new HashMap<>();
headers.put("Authorization",finalToken);
return headers;
}
};
requestQueue.add(sr);
}
}
而在我的片段我想我的字符串finalToken送入类设置为标题:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
SharedPreferences sp=this.getActivity().getSharedPreferences("domainname", Context.MODE_PRIVATE);
String domain = sp.getString("domainname", "");
SharedPreferences sp1=this.getActivity().getSharedPreferences("FINALTOKEN", Context.MODE_PRIVATE);
String finalToken = sp1.getString("FINALTOKEN","");
VolleyGetHeaders.getInstance(getActivity());
VolleyGetHeaders.getInstance().VolleyGETHeaders(domain, api, new CustomListener<String>(){
@Override
public void getResult(String result){
if (!result.isEmpty())
{
Log.e("customer info", result);
System.out.println("customer info----------->" + result);
}
}
});
return inflater.inflate(R.layout.my_account, container, false);
我的问题是如何将finalToken传递给我的非活动类,因为您可以看到我已经创建了最终的共享首选项,但我不知道如何在非活动类中检索它。
那解决了我的问题,谢谢! – JerryKo
欢迎我的兄弟。 –