Я хочу получить данные SharedPreference в классе Multipart - PullRequest
0 голосов
/ 23 января 2020

У меня есть Сохранение двух значений в общих настройках. Теперь я хочу отправить файл изображения на сервер и идентификатор, который был сохранен в общих настройках, и теперь я хочу получить доступ в многокомпонентном классе, помогите мне. Я тоже пытался добавить контекст, но у меня это не сработало. В ответ я сохранил идентификатор ранее в Shared Pref, теперь я хочу этот класс, поэтому я хочу получить его здесь и передать как параметр в запросе залпа.

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

1 Ответ

0 голосов
/ 23 января 2020

Тебе это нравится,

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