Allied Modders en español

Versión completa: Android Studio error ayuda
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola,

estoy haciendo un proyecto para mi universidad y me estoy basando en un video que vi que me esta ayudando pero tengo un error y no puedo saber como solucionarlo, hay alguien acá que me pueda dar una mano con el error por favor.

error: NAME has private access in SessionManager
String mName = user.get(sessionManager.NAME);
^

error: EMAIL has private access in SessionManager
String mEmail = user.get(sessionManager.EMAIL);
^

[Imagen: error.png]
comparte la clase sessionManager.java
(17/12/2021, 10:15 PM)roccoxx escribió: [ -> ]comparte la clase sessionManager.java

Sessionmanager.java

Código:
public class SessionManager{

    SharedPreferences sharedPreferences;
    public SharedPreferences.Editor editor;
    public Context context;
    int PRIVATE_MODE = 0;

    private static final String PREF_NAME = "LOGIN";
    private static final String LOGIN = "IS_LOGIN";
    private static final String NAME = "NAME";
    private static final String EMAIL = "EMAIL";

    public SessionManager(Context context) {
        this.context = context;
        sharedPreferences = context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
        editor = sharedPreferences.edit();
    }

    public void  createSession(String name, String email){
        editor.putBoolean("LOGIN", true);
        editor.putString("NAME", name);
        editor.putString("EMAIL", email);
        editor.apply();
    }
    public boolean isLoggin (){
        return sharedPreferences.getBoolean(LOGIN, false);
    }
    public void checkLogin(){
        if (!this.isLoggin()){
            Intent i = new Intent(context, MainActivity.class);
            context.startActivity(i);
            ((Perfil)context).finish();

        }
    }
    public HashMap<String, String> getUserDetail(){
        HashMap<String, String> user = new HashMap<>();
        user.put(NAME, sharedPreferences.getString(NAME, null));
        user.put(EMAIL, sharedPreferences.getString(EMAIL, null));

        return user;
    }
    public void logout (){
        editor.clear();
        editor.commit();
        Intent i = new Intent(context, MainActivity.class);
        context.startActivity(i);
        ((Perfil)context).finish();
    }
}

Perfil.java

Código:
public class Perfil extends AppCompatActivity {

    private TextView name, email;
    private Button btn_logout;
    SessionManager sessionManager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_perfil);


        sessionManager = new SessionManager(this);
        sessionManager.checkLogin();



        name = findViewById(R.id.name);
        email = findViewById(R.id.email);
        btn_logout = findViewById(R.id.btn_logout);

        HashMap <String, String> user = sessionManager.getUserDetail();
        String mName = user.get(sessionManager.NAME);
        String mEmail = user.get(sessionManager.EMAIL);

        name.setText(mName);
        email.setText(mEmail);

        btn_logout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sessionManager.logout();

            }
        });

    }
}

(17/12/2021, 10:15 PM)roccoxx escribió: [ -> ]comparte la clase sessionManager.java

Te puedo mandar el proyecto si quieres, si es un proyecto para mi trabajo de universidad.
private static final String NAME = "NAME";
private static final String EMAIL = "EMAIL";

------------------->

public static final String NAME = "NAME";
public static final String EMAIL = "EMAIL";

edit:
"Te puedo mandar el proyecto si quieres, si es un proyecto para mi trabajo de universidad."

No ando con mucho tiempo para ponerme a ver / evaluar otros proyectos, en todo caso postea en el foro para que alguien (además de mi) te pueda dar una mano si surge algo.
(17/12/2021, 10:31 PM)roccoxx escribió: [ -> ]private static final String NAME = "NAME";
private static final String EMAIL = "EMAIL";

------------------->

public static final String NAME = "NAME";
public static final String EMAIL = "EMAIL";

edit:
"Te puedo mandar el proyecto si quieres, si es un proyecto para mi trabajo de universidad."

No ando con mucho tiempo para ponerme a ver / evaluar otros proyectos, en todo caso postea en el foro para que alguien (además de mi) te pueda dar una mano si surge algo.

Lo otro cuando inicio sesion me da este error, estoy seguro que es del php, porque en el registro de usuario me pasaba lo mismo y cambie un texto que enviaba al iniciar sesion y funciono pero aca no lo encuentro.

[Imagen: error-androud.png]

Código PHP:
<?php



if ($_SERVER['REQUEST_METHOD']=='POST') {



$email $_POST['email'];
$password $_POST['password'];



require_once 
'connect.php';



$sql "SELECT * FROM users_table WHERE email='$email' ";



$response mysqli_query($conn$sql);



$result = array();
$result['login'] = array();

if ( 
mysqli_num_rows($response) === ) {

$row mysqli_fetch_assoc($response);



if ( 
password_verify($password$row['password']) ) {

$index['name'] = $row['name'];
$index['email'] = $row['email'];
$index['id'] = $row['id'];



array_push($result['login'], $index);



$result['success'] = "1";
$result['message'] = "success";
echo 
json_encode($result);



mysqli_close($conn);



} else {



$result['success'] = "0";
$result['message'] = "error";
echo 
json_encode($result);



mysqli_close($conn);



}



}



}



?>
Por el error parece que es de Java no de php cuando quieres convertir de String a Json
(17/12/2021, 10:53 PM)roccoxx escribió: [ -> ]Por el error parece que es de Java no de php cuando quieres convertir de String a Json

esto tengo en el inicio de sesion.

Código:
private EditText email, password;
    private Button btn_login;
    private ProgressBar loading;
    private String URL_LOGIN = "https://link.000webhostapp.com/login.php";
    private TextView registro_btn,ubicacion_btn;
    SessionManager sessionManager;

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

        sessionManager = new SessionManager(this);

        loading = findViewById(R.id.loading);
        email = findViewById(R.id.email);
        password = findViewById(R.id.password);
        btn_login = findViewById(R.id.btn_login);
        registro_btn = findViewById(R.id.btn_reg);
        ubicacion_btn = findViewById(R.id.btn_ubi);


        btn_login.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {
                String mEmail = email.getText().toString().trim();
                String mPass = password.getText().toString().trim();

                if (!mEmail.isEmpty() || !mPass.isEmpty()){
                    Login(mEmail, mPass);
                } else {
                    email.setError("Please insert email");
                    password.setError("Please insert password");
                }
            }
        });
        registro_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, registro.class));
            }
        });
        ubicacion_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, map_login.class));
            }
        });

}
private void Login(final String email, final String password){
        loading.setVisibility(View.VISIBLE);
        btn_login.setVisibility(View.GONE);

        StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_LOGIN,
                new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

                try {
                    JSONObject jsonObject = new JSONObject(response);
                    String success = jsonObject.getString("success");
                    JSONArray jsonArray = jsonObject.getJSONArray("login");

                    if (success.equals("1")){


                        for (int i = 0; i < jsonArray.length(); i++){

                            JSONObject object = jsonArray.getJSONObject(i);

                            String name = object.getString("name").trim();
                            String email = object.getString("email").trim();

                            sessionManager.createSession(name, email);

                            Intent intent = new Intent(MainActivity.this, Perfil.class);
                            intent.putExtra("name", name);
                            intent.putExtra("email", email);
                            startActivity(intent);


                            loading.setVisibility(View.GONE);
                        }
                        }
                } catch (JSONException e) {
                    e.printStackTrace();
                btn_login.setVisibility(View.GONE);
                loading.setVisibility(View.GONE);
                    Toast.makeText(MainActivity.this, "error" +e.toString(), Toast.LENGTH_SHORT).show();

                }
            }

        },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                    loading.setVisibility(View.GONE);
            btn_login.setVisibility(View.GONE);
                    Toast.makeText(MainActivity.this, "error" +error.toString(), Toast.LENGTH_SHORT).show();

                    }
                })
        {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map <String, String>  params = new HashMap<>();
                params.put("Email", email);
                params.put("Password", password);
                return params;
            }

        };
    RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);


    }


}
podrías printear con un system.out.println(response);

antes de JSONObject jsonObject = new JSONObject(response);

para ver que te esta convirtiendo, aunque creo que estas recibiendo contenido que no quisieras y ese es el problema.