Effettuare Login con dati Json

Discussione in 'Sviluppo app per Android' iniziata da mau90, 23 Agosto 2019.

  1. mau90

    mau90 Nuovo Utente

    Registrato:
    2 Agosto 2019
    Messaggi:
    18
    Mi Piace Ricevuti:
    1
    Punteggio:
    3
    Sesso:
    Maschio
    Nuovo giorno, nuovo problema!
    Vorrei effettuare il login sulla mia app utilizzando i dati recuperati tramite Json, ma non saprei come fare... dovrei trovare il modo per rendere tali dati delle variabili? se si, come? ...

    di seguito vi inserisco il codice da me sviluppato per recuperare il Json e per effettuare il login sull'app... è un po incasinato, ma funziona tutto perfettamente, il json funziona, devo solo capire come utilizzarlo per effettuare il login!

    Il codice elencato con le lettere A-B-C ecc è quello che riguarda la struttura di login.
    Il codice elencato con i numeri è la parte di codice che effettua il recupero del json

    Queste sono delle costanti provvisorie solo per verificare il corretto funzionamento del login;
    al posto di queste dovrei inserire l'username e la password presenti sul json... almeno credo
    final private String nomeUtente = "maurizio";
    final private String pass = "1234";

    PHP:
    package com.example.progettoandroid2;

    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;

    import com.android.volley.Request;
    import com.android.volley.RequestQueue;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.JsonObjectRequest;
    import com.android.volley.toolbox.Volley;

    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;

    public class 
    LoginActivity extends AppCompatActivity {

        private 
    TextView mTextViewResult;
        private 
    RequestQueue mQueue;
        
    // A. mi dichiaro le variabili
        
    TextView benvenuto;
        
    EditText utente;
        
    EditText password;
        
    Button login;

        
    //F. scrivo delle costanti per verificare l'autenticazione
        
    final private String nomeUtente "maurizio";
        final private 
    String pass "1234";



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

            
    mTextViewResult findViewById(R.id.text_view_result);
            
    Button buttonParse findViewById(R.id.button_parse);
            
    // B. mi collego le variabili ai componenti
            
    benvenuto findViewById(R.id.benvenuto);
            
    utente findViewById(R.id.utente);
            
    password findViewById(R.id.password);
            
    login findViewById(R.id.login);

            
    //Creiamo una RequestQueue, che richiede come pararametro il context
            //questo oggetto si occupa di tutte le operazioni di rete, della lettura e della scrittura sulla cache
            // del parsing e delle reisposte
            
    mQueue Volley.newRequestQueue(this);

            
    buttonParse.setOnClickListener(new View.OnClickListener() {
                @
    Override
                
    public void onClick(View v) {
                    
    jsonParse();
                }
            });
        }

        private 
    void jsonParse() {
            
    Log.d("ingresso""messaggio");
            
    //1. All'interno di una costante memorizziamo l'url del file Json
            
    String url "rimuovo l'url per questioni di privacy, è presente il mio ip";

            
    //2. Dovendo effettuare il parsing di un array, ci serve un oggetto di tipo "JsonArrayRequest".
            //Il costruttore di questo richiede vari parametri: GET per prelevare dati; POST per inviarli.
            //Nel nostro caso, dovendo prelevare i dati, sfruttiamo il metodo GET.
            
    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GETurlnull,
                    new 
    Response.Listener<JSONObject>() {

                        
    //3. Metodo che attende una rispsota del listner
                        // Se otteniamo la risposta, avremo un array all'interno di un oggetto JSON.
                        // Quindi scansioniamo tutti gli elementi all'interno di un ciclo *
                        
    @Override
                        
    public void onResponse(JSONObject response) {

                            
    //Log.d("ingresso", url);

                            
    try {
                                
    JSONArray jsonArray response.getJSONArray("Dati");

                                for (
    int i 0jsonArray.length(); i++) { //* ciclo

                                    //4. Per prelevare un oggetto all'interno dell'array sfruttiamo JSONObject
                                    //I dati all'interno di questo oggetto possono essere prelevati tramite gli appositi getter:
                                    //Queste istruzioni possono generare eccezioni, quindi vanno inserite all'interno di un blocco try-catch
                                    
    JSONObject dato jsonArray.getJSONObject(i);

                                    
    String id dato.getString("id");
                                    
    String fullname dato.getString("fullname");
                                    
    String username dato.getString("username");
                                    
    String password dato.getString("password");


                                    
    mTextViewResult.append(id ", " fullname +  ", " username +  ", " password "\n\n");

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

                        }
                    }, new 
    Response.ErrorListener() {

                
    //5. Metodo che attende e gestisce eventuali errori
                
    @Override
                
    public void onErrorResponse(VolleyError error) {
                    
    error.printStackTrace();

                }
            });

            
    mQueue.add(request);
        }
        
    /* C. creazione della funzione di login
            Andiamo sul Design del file xml, selezioniamo il bottone e dal menu Attributes scrivamo "login"
            nell onClick. Successivamente ci richiamiamo sul Text del file xml e cliccchiamo sulla lampadina
            rossa a livello dell'onClick="login"; a questo punto, dal menu tendina che verrà fuori
            selezioniamo Create 'login(View)' in 'MainActivity' per creare la funzione nel MainActivity.java
             */

        
    public void login(View view) {

            
    /* D. creiamo un Toast per capire se la funzione login funziona.
            quando clicchiamo sul bottone dovrebbe uscire un pop-up che dice "preso"
             */

            //Toast.makeText(this, "preso", Toast.LENGTH_SHORT).show();

            // G.
            
    if (utente.getText().toString().equals(nomeUtente) && password.getText().toString().equals(pass)) {

            
    /* E. a questo punto creiamo una seconda activity nella qualle saremo mandati una volta loggati:
            tasto destro sulla cartella java del menu di sinistra; new; Activity; Empty Activity.
             */

                // E. scriviamo la funzione per andare alla seconda pagina
                
    Intent vaiMainActivity2 = new Intent(thisLoggedActivity.class);

                
    // H.
                
    vaiMainActivity2.putExtra("msg"utente.getText().toString());

                
    // E.
                
    startActivity(vaiMainActivity2);
            }

            
    //G.
            
    else {
                
    Toast.makeText(this"nome utente e password errati"Toast.LENGTH_SHORT).show();
            }


        }
    }
     
Sto caricando...

Condividi questa Pagina