Передать параметры асинхронной задачи [дубликаты]

На этот вопрос уже есть ответ:

Я делаю проект на Android, который содержит логин. Для поиска пользователей он подключается к сервису wcf, и все работает отлично, но мне нужно получить имя пользователя для проверки.

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

Это асинхронная задача, в которой я использую wcf (LoginActivity):

public class GetUsuario extends android.os.AsyncTask<String, Void, Void> {

    final String SOAP_ACTION = "http://tempuri.org/IService1/listarUsuario";
    final String METHOD = "listarUsuario";
    final String NAMESPACE = "http://tempuri.org/";
    final String ENDPOINTWS = "http://192.1.1.53/SP_Inventarios_Dummy/Service1.svc";
    int j = 0;

    private ProgressDialog dialog;

    public GetUsuario(LoginActivity activity) {
        dialog = new ProgressDialog(activity);
    }

    @Override
    protected void onPreExecute() {
        dialog.setMessage("Iniciando...");
        dialog.show();
    }

    protected Void doInBackground(String... params) {
        listaTodo.clear();
        SoapObject userRequest = new SoapObject(NAMESPACE, METHOD);
        userRequest.addProperty("user", params[0]);
        userRequest.addProperty("pass", params[1]);

        usuario = params[0].toString();
        password = params[1].toString();

        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.setOutputSoapObject(userRequest);
        envelope.dotNet = true;

        try {
            HttpTransportSE androidHttpTransport = new HttpTransportSE(ENDPOINTWS);
            androidHttpTransport.debug = true;
            androidHttpTransport.call(SOAP_ACTION, envelope);

            SoapObject res = (SoapObject) envelope.bodyIn;
            SoapObject t = (SoapObject) res.getProperty("listarUsuarioResult");

            for (int i = 0; i < t.getPropertyCount(); i++) {
                SoapObject bank = (SoapObject) t.getProperty(i);

                String busuario = bank.getProperty("Nombre_Usuario").toString();
                String bpassword = bank.getProperty("Password_Usuario").toString();
                String bdepto = bank.getProperty("Departamento").toString();


                Usuarios usu = new Usuarios(busuario, bpassword, bdepto);
                listaTodo.add(usu);
            }

        } catch (Exception e) {
            e.printStackTrace();

        }

        return null;
    }

    protected void onPostExecute(Void result) {
        super.onPostExecute(result);

        if (dialog.isShowing()) {
            dialog.dismiss();
        }

        String sUser = user.getText().toString();
        String sPass = pass.getText().toString();

               if (listaTodo.get(0).strNombre_Usuario.equals(sUser)
                       && listaTodo.get(0).strPassword_Usuario.equals(sPass)) {
                   Toast.makeText(getApplicationContext(), "Bienvenido", Toast.LENGTH_SHORT).show();

                   Intent i = new Intent(getApplicationContext(), MainActivity.class );
                   startActivity(i);
               }
               else {
                       Toast.makeText(getApplicationContext(), "Nombre de usuario o contraseña incorrectas", Toast.LENGTH_SHORT).show();

               }
    }

}

Теперь я хочу использовать пользовательский параметр для проверки и отображения информации, но в другом действии.

0
задан 17.01.2017, 01:10
0 ответов

Уже он остался решенным, я использовал этот маленький фрагмент кода для того, чтобы он будет сохранять мне данные, которых он занимал:

public void ejecutar(View view) {
     Intent i = new Intent(this, Actividad2.class );
     i.putExtra("direccion", et1.getText().toString());
     startActivity(i);        
}

И уже в другом activity:

Bundle bundle = getIntent().getExtras();
    webView1.loadUrl("http://" + bundle.getString("direccion"));

Я это приспособил к моей необходимости и оно функционировало.

-1
ответ дан 03.12.2019, 17:39

Теги

Похожие вопросы