que no trabaja con el paso del texto Textview a la UserprofileActivity (segunda actividad) de MainActivity (primera actividad)

alexandar:

mi proyecto se enfrentan al problema, como no pueda pasar el valor de la Textview firstActivity (MainActivity) a secondActivity TextView (profileActivity).

es la razón por la que yo solía BackgroundWorker (AsyncTask) por lo que no puede dirigir pasar los datos?

BackgroundWorker (AsyncTask) es la clase Java para interactuar entre la base de datos MySQL y el propósito del estudio androide.

referencias: Referencias AsyncTask

si el método de intención no se puede utilizar con AsyncTask backgound clase, por lo que el método que debo hacer referencia a?

a continuación es MainActivity (actividad de inicio de sesión AKA) y texto en negrita es la parte intención:

    import ....;

    public class MainActivity extends AppCompatActivity {
        Button _button;
        EditText usernamelogin, passwd;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            _button=findViewById(R.id.button);

            usernamelogin =findViewById(R.id.usernamelogin);
            passwd = findViewById(R.id.passwd);


        }

        public void OnLogin(View view){

                String user_name = usernamelogin.getText().toString();
                String pass_word = passwd.getText().toString();
                String type = "login";

               BackgroundTask backgroundTask = new BackgroundTask(this);
                backgroundTask.execute(type, user_name, pass_word);
                Intent intent = new Intent(MainActivity.this,ProfileActivity.class);
                intent.putExtra("userprofilename",_usernamelogin.getText().toString());   
            }  
        }
   }

Intento = intención nuevos intención (MainActivity.this, ProfileActivity.class); intent.putExtra ( "NombreDePerfilDeUsuario", _ usernamelogin.getText toString () ().);

A continuación se SecondActivity:

import......;
public class ProfileActivity extends AppCompatActivity {
    TextView logouttxt;
    TextView profilename;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_profile);
    profilename=(TextView)findViewById(R.id.userproname);
        logouttxt =findViewById(R.id.logouttxt);
        profilename.setText(getIntent().getStringExtra("userprofilename"));



    }
}

profilename.setText (. getIntent () getStringExtra ( "NombreDePerfilDeUsuario"));

a continuación es mi (AsyncTask) BackgroundWorker clase:

import .....;



public class BackgroundTask extends AsyncTask<String, Void, String> {
    Context context;
    AlertDialog alertDialog;

    BackgroundTask(Context ctx){
        context=ctx;
    }

    @Override
    protected String doInBackground(String...params) {


        String type = params[0];

        String loginURL ="http://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

        if(type.equals("login")) {

            try {
            String user_name = params[1];
            String pass_word = params[2];

                URL url = new URL(loginURL);

                    HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
                    httpURLConnection.setRequestMethod("POST");
                    httpURLConnection.setDoOutput(true);
                    httpURLConnection.setDoInput(true);
                    OutputStream outputStream = httpURLConnection.getOutputStream();
                    BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
                    String login_data = URLEncoder.encode("username", "UTF-8") + "=" + URLEncoder.encode(user_name, "UTF-8") + "&"
                            + URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(pass_word, "UTF-8");


                    bufferedWriter.write(login_data);
                    bufferedWriter.flush();
                    bufferedWriter.close();
                    outputStream.close();

                    InputStream inputStream = httpURLConnection.getInputStream();
                    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));

                    String result="";
                    String line="";
                    while((line = bufferedReader.readLine())!= null) {
                        result += line;
                    }
                    bufferedReader.close();
                    inputStream.close();
                    httpURLConnection.disconnect();
                    return result;

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

            }


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


        }
            return null;
        }

    @Override
    protected void onPreExecute() {
        alertDialog = new AlertDialog.Builder(context).create();
        alertDialog.setTitle("Login Status");
    }

    @Override
    protected void onPostExecute(String result) {
        alertDialog.setMessage(result);



        if(result.contentEquals("Login Success")) {
            Toast.makeText(context, "Login Successfully!", Toast.LENGTH_SHORT).show();
            context.startActivity(new Intent(context, ProfileActivity.class));



        }else
        {
            Toast.makeText(context, "Login Fail!", Toast.LENGTH_SHORT).show();
        }



    }

    @Override
    protected void onProgressUpdate(Void... values) {
        super.onProgressUpdate(values);
    }
    }

Gracias.

Tyler V:

Si desea que la onPostExecutellamada para pasar el nombre de usuario a la siguiente actividad que tiene que añadirlo como un extra allí.

public class BackgroundTask extends AsyncTask<String, Void, String> {
    Context context;
    AlertDialog alertDialog;
    private String user_name = "";  // <-- STORE THE USER NAME

    BackgroundTask(Context ctx){
        context=ctx;
    }

    @Override
    protected String doInBackground(String...params) {

        String type = params[0];

        String loginURL ="http://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

        if(type.equals("login")) {

            try {
                user_name = params[1]; // <--- SET THE MEMBER VARIABLE
                String pass_word = params[2];

                // do stuff

                return result;

            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
        }

        return null;
    }

    @Override
    protected void onPostExecute(String result) {
        if(result != null && result.contentEquals("Login Success")) {
            Toast.makeText(context, "Login Successfully!", Toast.LENGTH_SHORT).show();

            // ADD THE STORED USER NAME TO THE INTENT
            Intent i = new Intent(context, ProfileActivity.class);
            i.putExtra("userprofilename",user_name);
            context.startActivity(i);
        }
        else {
            Toast.makeText(context, "Login Fail!", Toast.LENGTH_SHORT).show();
        }
    }
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=339327&siteId=1
Recomendado
Clasificación