我想在Multipart类中获取SharedPreference数据

问题描述 投票:0回答:1

我现在在共享首选项中存储了两个值,我想将图像文件发送到服务器,并且我现在已经在共享首选项中存储了ID,我想在多部分类中访问,请帮助我。我也尝试添加上下文,但对我没有用。作为响应,我以前在Shared Pref中存储了id,现在我想在该类中使用该ID,因此我想在这里检索它并将其作为截击请求中的参数传递。

    public class MultiPartRequest extends Request<String> {
    private Response.Listener<String> mListener;
    private HttpEntity mHttpEntity;
    public MultiPartRequest(Response.ErrorListener errorListener, Response.Listener listener, ArrayList<File> file, int numberOfFiles) {
        super(Method.POST, EndPointAPI.PATH, errorListener);
        mListener = listener;
        mHttpEntity = buildMultipartEntity(file, numberOfFiles);
    }
    private HttpEntity buildMultipartEntity(ArrayList<File> file, int numberOffiles) {
        MultipartEntityBuilder builder = MultipartEntityBuilder.create();
        for (int i = 0; i < file.size(); i++) {
            SharedPreferences prefs1 = getSharedPreferences("ABC", MODE_PRIVATE);
 i have tried 
SharedPreferences prefs1 = mcontext.getSharedPreferences("ABC", Context.MODE_PRIVATE);
            String token = prefs1.getString("token", "");
            String aksk_no = prefs1.getString("aksk_no", "");
            Date c = Calendar.getInstance().getTime();
            String strDateFormat = "MM";
            SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);
            String strMonth = sdf.format(c);
            SimpleDateFormat df = new SimpleDateFormat("MMM/yyyy");
            String formattedDate = df.format(c);
            String[] separated = formattedDate.split("/");
            String strYear = separated[1];
            FileBody fileBody = new FileBody(file.get(i));
            builder.addPart("fileToUpload", fileBody);
            builder.addTextBody("a_k_s_no", aksk_no.trim();
            builder.addTextBody("year", strYear);
            builder.addTextBody("month", strMonth);
            builder.addTextBody("token", token.trim();
        }
        builder.addTextBody(Template.Query.KEY_DIRECTORY, Template.Query.VALUE_DIRECTORY);
        builder.addTextBody("numberOfFiles", String.valueOf(numberOffiles));
        return builder.build();
    }@Override
    public String getBodyContentType() {
        return mHttpEntity.getContentType().getValue();
    }
    @Override
    public byte[] getBody() throws AuthFailureError {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        try {
            mHttpEntity.writeTo(bos);
            return bos.toByteArray();
        } catch (IOException e) {
            VolleyLog.e("" + e);
            return null;
        } catch (OutOfMemoryError e) {
            VolleyLog.e("" + e);
            return null;
        }
    }
    @Override
    protected Response<String> parseNetworkResponse(NetworkResponse response) {
        try {
            return Response.success(new String(response.data, "UTF-8"),
                    getCacheEntry());
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
            return Response.success(new String(response.data),
                    getCacheEntry());
        }
    }
    @Override
    protected void deliverResponse(String response) {
        mListener.onResponse(response);
    }
}
android android-studio sharedpreferences android-volley
1个回答
0
投票

您喜欢这个,

Context context;

public MultiPartRequest(Response.ErrorListener errorListener, Response.Listener listener, ArrayList<File> file, int numberOfFiles,Context context){
    this.context = context;
}

SharedPreferences prefs1 = context.getSharedPreferences("ABC", Context.MODE_PRIVATE);
© www.soinside.com 2019 - 2024. All rights reserved.