Как получить значение от другого действия?

#android

#Android

Вопрос:

Я хочу установить значение в модели Resigter. Я хочу создать действие регистрации за четыре шага. Я хочу знать, как установить значение в регистровой модели. И я должен получить это значение из любого места.

Вот мой код, все значения помещаются в одно действие. И я хочу сделать четыре шага

 public void UploadData(final String link) {

    Response = "";

    try {

        HttpResponse response;

        Log.d("pre_link", "pre_link = "   link);

        final HttpClient httpclient = new DefaultHttpClient();

        final HttpPost httppost = new HttpPost(link);

        /*httppost.addHeader("Authorization", "Basic "
                  Base64.encodeToString(("username"   ":"
                          "password").getBytes(), Base64.NO_WRAP));*/

        MultipartEntity mpEntity = new MultipartEntity(
                HttpMultipartMode.BROWSER_COMPATIBLE);

        String FullName = fullName.getText().toString();
        String UserName = userName.getText().toString();
        String DateOfBirth = dob.getText().toString();
        String Age = age.getText().toString();

        String Sex = gender.getText().toString();
        String InterestedIn = interestIn.getText().toString();
        String ToMeet = "both";//toMeet.getText().toString();

        String Email = email.getText().toString();
        String Password = pwd.getText().toString();
        String Lat = String.valueOf(latitude);
        String Long = String.valueOf(longitude);

        mpEntity.addPart("fullName", new StringBody(FullName));
        mpEntity.addPart("userName", new StringBody(UserName));
        mpEntity.addPart("dob", new StringBody(DateOfBirth));
        mpEntity.addPart("age", new StringBody(Age));
        mpEntity.addPart("gender", new StringBody(Sex));
        mpEntity.addPart("interestIn", new StringBody(InterestedIn));
        mpEntity.addPart("toMeet", new StringBody(ToMeet));
        mpEntity.addPart("email", new StringBody(Email));
        mpEntity.addPart("pwd", new StringBody(Password));

        mpEntity.addPart("latitude", new StringBody(Lat));
        mpEntity.addPart("longitude", new StringBody(Long));

        if (bab1 != null) {
            mpEntity.addPart("uploaded_file", bab1);
        }

        httppost.setEntity(mpEntity);

        createCancelProgressDialog("Uploading Image", "Please wait...", "Cancel");

        new Thread() {
            public void run() {
                try {
                    HttpResponse response;
                    Message msg = new Message();

                    msg.what = 1;

                    try {
                        response = httpclient.execute(httppost);
                        HttpEntity resEntity = response.getEntity();
                        if (resEntity != null) {
                            Response = EntityUtils.toString(resEntity)
                                    .trim();

                            Log.d("Response", "Response = "   Response);

                            Message msg2 = new Message();
                            msg2.what = 1;
                            UpdateHandler.sendMessage(msg2);

                        }
                        if (resEntity != null) {
                            resEntity.consumeContent();
                        }
                    } catch (ClientProtocolException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                } catch (Exception e) {
                    Log.e("tag", e.getMessage());
                }

            }
        }.start();

    } catch (UnsupportedEncodingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
}

public Handler UpdateHandler = new Handler() {
    public void handleMessage(Message msg) {

        switch (msg.what) {
        case 1:
            try {

                cancelDialog.dismiss();
                cancelDialog.hide();

                Log.d("Response", "Response = "   Response);

                Toast.makeText(SignUp.this,"you are Success", Toast.LENGTH_SHORT).show();
                RegisterModel register =new RegisterModel();
                //register.setfullName();

                          Intent i = new Intent(getApplicationContext(),SignupSuccessfully.class);

                         // i.putExtra("pwd",pwsd);
                          startActivity(i);
                          finish();
                        //flag=1;




                //String read_data = ReadDataFromAppCache(MainActivity.this, "file_name");
                //StoreDataToAppCache(MainActivity.this, "file data", "file_name");                 
            } catch (Exception e) {
                // TODO: handle exception
            }
            super.handleMessage(msg);
        }
    }
};

ProgressDialog cancelDialog = null;

private void createCancelProgressDialog(String title, String message,
        String buttonText) {
    cancelDialog = new ProgressDialog(SignUp.this);
    cancelDialog.setTitle(title);
    cancelDialog.setMessage(message);
    cancelDialog.setCanceledOnTouchOutside(false);
    // cancelDialog2.setIcon(R.drawable.icon);

    /*cancelDialog.setButton(buttonText,
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    cancelDialog.dismiss();
                    cancelDialog.hide();
                    return;
                }
            });*/
    cancelDialog.show();
}

public Bitmap setBitmap(String _path) {
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inTempStorage = new byte[16*1024];
    options.inPurgeable = true;
    //options.inJustDecodeBounds = true;
    Bitmap bitmap = null;

    ExifInterface exif;
    try {
        bitmap = BitmapFactory.decodeFile(selectedImagePath, options);

        exif = new ExifInterface(_path);
        int exifOrientation = exif
                .getAttributeInt(ExifInterface.TAG_ORIENTATION,
                        ExifInterface.ORIENTATION_NORMAL);

        int rotate = 0;

        switch (exifOrientation) {
        case ExifInterface.ORIENTATION_ROTATE_90:
            rotate = 90;
            break;

        case ExifInterface.ORIENTATION_ROTATE_180:
            rotate = 180;
            break;

        case ExifInterface.ORIENTATION_ROTATE_270:
            rotate = 270;
            break;
        }

        //Log.d("image_rotation", "image_rotation = "   rotate);

        if (rotate != 0) {
            int w = bitmap.getWidth();
            int h = bitmap.getHeight();

            // Setting pre rotate
            Matrix mtx = new Matrix();
            mtx.preRotate(rotate);

            // Rotating Bitmap amp; convert to ARGB_8888, required by tess
            bitmap = Bitmap.createBitmap(bitmap, 0, 0, w, h, mtx, false);
            bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);

        } 

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return bitmap;
}

public String ReadDataFromAppCache(Context context, String file_name) {

    String output = "";
    Log.d("file name", "file name = "   file_name);
    try {
        int ch;
        File f = new File(context.getFilesDir()   "/"   file_name);
        //Log.d("file path", ""   f.getAbsolutePath());

        StringBuffer strContent = new StringBuffer("");
        FileInputStream fin = null;

        try {
            fin = new FileInputStream(f);

            while ((ch = fin.read()) != -1)
                strContent.append((char) ch);

            fin.close();
        } catch (FileNotFoundException e) {
            //Log.d("File "   f.getAbsolutePath(), " could not be found on filesystem");
            output = "null";
            return output;
        } catch (IOException ioe) {
            //Log.d("Exception while reading the file", "Exception while reading the file"   ioe);
        }

        try {
            output = URLDecoder.decode(strContent.toString(), "UTF-8");
        } catch (UnsupportedEncodingException uee) { }

        //Log.d("This is xml", "This is xml"   strContent);

        //output = strContent.toString();

    } catch (Exception e) {
        // TODO: handle exception
    }
    return output;
}

public void StoreDataToAppCache(Context con, String fileData, String file_name) {
    try {
        String encodedValue = "";
        try {
            encodedValue = URLEncoder.encode(fileData, "UTF-8");
        } catch (UnsupportedEncodingException uee) {
        }

        //encodedValue = sBody;
        //Log.d("store text", "store_text = "   encodedValue);
        File f = new File(con.getFilesDir()   "/"   file_name);

        FileWriter writer = new FileWriter(f);
        writer.append(encodedValue);
        writer.flush();
        writer.close();
        Log.d("save complete", "save complete");
    } catch (IOException e) {
        e.printStackTrace();
    }
}
  

}

Не могли бы вы рассказать мне, как установить это значение в регистрах, тогда я создам четыре шага регистрации.

Комментарии:

1. Вы можете получить его через передачу данных, используя пакет с Activity.

2. Что здесь где-нибудь? 🙂

3. Если вы хотите получить доступ к значению в любом месте, вам нужно сохранить эти данные в SharedPreferences .

4. Последний шаг страницы регистрации .. это будет где угодно .. я должен сделать

5. Вы хотите отправить данные в SignupSuccessfully.class ?

Ответ №1:

Вы можете сделать это с помощью одного из следующих методов

  1. Используйте общие настройки для сохранения ваших данных, и вы можете получить к ним доступ из любого места приложения (рекомендуется).
  2. Если у вас есть больше данных для хранения, я рекомендую использовать database .
  3. Вы можете передавать значения из одного действия в другое, используя intent.putExtra() метод. Но вам придется делать это для всех новых действий
  4. Другой простой метод — сделать ваши переменные общедоступными статическими и получить доступ к данным с помощью статической ссылки из любого места вашего проекта. (Не рекомендуется).

Надеюсь, это вам поможет. 🙂

Комментарии:

1. спасибо anu за ответ.. Я хочу рассказать, как я хочу установить действие шага 1: пол мужской или женский нажмите на следующее действие 2: Интерес ……. нажмите далее 3 возраст…….

2. хорошо, тогда вы продолжаете передавать значения через намерение в Activity2 из Activity 1. Затем в действии, где вы завершаете процесс регистрации, сохраните значения в общих настройках. Чтобы вы могли получить к ним доступ из любой точки вашего проекта даже после завершения регистрационных действий.

3. Есть ли какое-нибудь лучшее учебное пособие, позволяющее легко и понятно узнать о совместном использовании

4. Можно использовать строку male=»male»; Редактор. putString(«male», Male) editor.comit(); .. НАМЕРЕНИЕ внутри представления щелчка. Будет ли оно храниться через общий доступ, могу ли я использовать эти значения

Ответ №2:

Вариант 1: просто передайте данные

если вы хотите просто передавать данные из одного действия в другое, вы можете сделать это следующим образом

 startActivity(new Intent(Context,Activity_name.class).putExtra("Key",Value));
  

и переходите к следующему действию, например

 Intent intent = getIntent();
variable = = intent.getXXXExtra("Key");
  

Вариант 2 Сохранить данные в SharedPreferences

 SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putXXX("Key", Value);
editor.commit();
  

и получить из него данные

 SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
Variable = getResources().getInteger("Key");
  

Комментарии:

1. Спасибо и спасибо … я использую веб-интерфейс api.. Я должен отправить это значение на сервер с помощью метода Post….

2. в чем проблема?? где вы застряли?

3. я собираюсь сделать процесс регистрации в четыре этапа.. 1 Пол: нужно использовать флажок мужчина / женщина 2: заинтересованный .. три флажка три флажка Эти значения будут использоваться на последнем шаге для отправки на сервер

Ответ №3:

Существует много способов передачи значения из одного действия в другое действие, например, общие настройки, пакет, намерение putextra, база данных .. для новичка вы можете использовать общие настройки.. я надеюсь, что это поможет вам..

1. Следующий урок может помочь вам:

Базовое руководство по общим предпочтениям (форма входа и регистрации)

Простой пример для общих предпочтений с исходным кодом