Autore Topic: LogIn strano.  (Letto 393 volte)

Offline dimandrea

  • Nuovo arrivato
  • *
  • Post: 39
  • In realtà detesto con tutto me stesso Android.
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Asus MemoPad HD 7
  • Sistema operativo:
    Windows 7 - Windows 8.1 Up 1
LogIn strano.
« il: 18 Giugno 2014, 18:00:07 CEST »
0
Salve a tutti, rieccomi. Ho un problema:
sempre per lavoro mi è stato chiesto che ad una'pp si posa accedere tramite login ma i dati da prendere risiedono all'interno di un file (senza estensione, funziona tranquillamente).
Il punto è che il programma non effettua il giusto confronto e mi da esito negativo anche quando le credenziali di accesso sono corrette.
Vi posto il codice:
Codice (Java): [Seleziona]
import java.io.*;
import java.util.Scanner;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class LoginActivity extends Activity {

        @Override
    protected void onPause() {
           
            super.onPause();
            finish();
    }

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_login);
                Button login = (Button)findViewById(R.id.btnLogin);
                login.setOnClickListener(new OnClickListener() {
                        @Override  
                        public void onClick(View arg0) {
                                EditText username = (EditText)findViewById(R.id.user);
                                EditText password = (EditText)findViewById(R.id.password);
                String cred = username.getText().toString()+password.getText().toString();
                final File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
                final File fileIn = new File(path, "credenziali");
                                try {
                        FileReader lettore = new FileReader(fileIn);
                                        Scanner in = new Scanner(lettore);
                                        boolean trovato = false;
                                        while (in.hasNextLine()) {
                                                String linea = in.nextLine();
                                                /* Mostra ciò che legge e ciò che è stato inserito
                                                AlertDialog.Builder builder=new AlertDialog.Builder(LoginActivity.this);
                                                builder.setTitle("Mostra");
                                                builder.setMessage(linea+"  -  "+cred);
                                                builder.setCancelable(false);
                                                builder.setPositiveButton("Riprova",new android.content.DialogInterface.OnClickListener(){
                                                        public void onClick(DialogInterface dialog, int id){
                                                                dialog.dismiss();
                                                                }
                                                        });
                                                AlertDialog alert=builder.create();
                                        builder.show();
                                        / Fine mostra */

                                                if (cred == linea) {
                                                        trovato = true;
                                                        Intent principale = new Intent(getApplicationContext(), MainActivity.class);
                                                        startActivity(principale);
                                                }
                                        }
                                        in.close();
                                        if (trovato == false) {
                                                AlertDialog.Builder builder=new AlertDialog.Builder(LoginActivity.this);
                                                builder.setTitle("Errore");
                                                builder.setMessage("Credenziali di accesso errate. Riprova!");
                                                builder.setCancelable(false);
                                                builder.setPositiveButton("Riprova",new android.content.DialogInterface.OnClickListener(){
                                                        public void onClick(DialogInterface dialog, int id){
                                                                dialog.dismiss();
                                                                }
                                                        });
                                                AlertDialog alert=builder.create();
                                        builder.show();
                                        }
                                } catch (FileNotFoundException e) {
                                        e.printStackTrace();
                                }
                        }
       
            });

        }
       
       
}

Ecco il logcat
https://drive.google.com/file/d/0B_VVPxpS97eURmx4S1Nya1JCcGM/edit?usp=sharing
« Ultima modifica: 18 Giugno 2014, 18:07:23 CEST da dimandrea »
Stupido è chi lo stupido fa!

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:LogIn strano.
« Risposta #1 il: 18 Giugno 2014, 18:08:13 CEST »
0
Codice (Java): [Seleziona]
if (cred == linea) {
In Java le stringhe (e gli oggetti in genere) non si confrontano con ==, ma con .equals().
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline dimandrea

  • Nuovo arrivato
  • *
  • Post: 39
  • In realtà detesto con tutto me stesso Android.
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Asus MemoPad HD 7
  • Sistema operativo:
    Windows 7 - Windows 8.1 Up 1
Re:LogIn strano.
« Risposta #2 il: 18 Giugno 2014, 18:10:59 CEST »
0
ok ok, grazie mille!
Ho subito apportato la modifica al codice ed ora funziona!
Grazie ancora! Topic risolto (ho già cliccato)
Stupido è chi lo stupido fa!