Autore Topic: Visualizzazione riga dal database in un fragment  (Letto 440 volte)

Offline marco58

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
Visualizzazione riga dal database in un fragment
« il: 10 Ottobre 2017, 18:30:50 CEST »
0
Salve a tutti,
avrei bisogno di un aiuto per quanto riguarda questo problema:
ho caricato su un sito di hosting il mio database e vorrei visualizzarlo nella mia applicazione android; in particolare la lettura di una riga della tabella "Giocatore" che vorrei visualizzarla nel fragment, o meglio nelle rispettive EditText, non funziona.
Non penso che il problema sia nei file .php che permettono l'accesso al database poiché ho già fatto delle prove precedentemente.
Grazie in anticipo per il vostro aiuto.

Allego qui un pezzo di codice della mia applicazione:
Codice (Java): [Seleziona]
public class GiocatoreFragment extends Fragment{
    private static int id= 1; //id = Giocatore.id
    // url to get all products list
    private static String url_giocatore = "http://giocapp.altervista.org/get_giocatore.php/?id="+id+".php";

    // JSON Node names
    private static final String TAG_SUCCESS = "success";
    private static final String TAG_GIOCATORE = "Giocatore";
    private static final String TAG_ID_GIOCATORE = "IdGiocatore";
    private static final String TAG_COGNOME = "Cognome";
    private static final String TAG_NOME = "Nome";
    private static final String TAG_INDIRIZZO = "Indirizzo";
    private static final String TAG_DATA_NASCITA = "DataNascita";

    // Progress Dialog
    private ProgressDialog pDialog;
    String new_id;


    EditText txtId;
    EditText txtNome;
    EditText txtCognome;
    EditText txtDataNascita;
    EditText txtIndirizzo;


    // JSON parser class

    // products JSONArray
    JSONArray giocatore = null;
    JSONParser jsonParser = new JSONParser();

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    //returning our layout file
        //change R.layout.yourlayoutfilename for each of your fragments
        View view = inflater.inflate(R.layout.fragment_giocatore, container, false); //prima era return inflater ecc.


        int success;
        try {
            ;
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("id", ""+id));

            // getting product details by making HTTP request
            // Note that product details url will use GET request
            JSONObject json = jsonParser.makeHttpRequest(
                    url_giocatore, "GET", params);

            // check your log for json response
            Log.d("Single Product Details", json.toString());

            // json success tag
            success = json.getInt(TAG_SUCCESS);
            if (success == 1) {
                // successfully received product details
                JSONArray giocatoreObj = json
                        .getJSONArray(TAG_GIOCATORE); // JSON Array

                // get first product object from JSON Array
                JSONObject giocatore = giocatoreObj.getJSONObject(0);

                // product with this pid found
                // Edit Text
                txtId = (EditText) view.findViewById(R.id.txtId);//usato l'oggetto view
                txtCognome = (EditText) view.findViewById(R.id.txtCognome);
                txtNome= (EditText) view.findViewById(R.id.txtNome);
                txtDataNascita = (EditText) view.findViewById(R.id.txtDataNascita);
                txtIndirizzo = (EditText) view.findViewById(R.id.txtIndirizzo);


                // display product data in EditText
                txtId.setText(giocatore.getString(TAG_ID_GIOCATORE));
                txtNome.setText(giocatore.getString(TAG_NOME));
                txtCognome.setText(giocatore.getString(TAG_COGNOME));
                txtDataNascita.setText(giocatore.getString(TAG_DATA_NASCITA));
                txtIndirizzo.setText(giocatore.getString(TAG_INDIRIZZO));


            }else{
                // product with pid not found
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return view;


    }



    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        //you can set the title for your toolbar here for different fragments different titles
        getActivity().setTitle("Giocatore");
    }


}

Offline berpao

  • Utente junior
  • **
  • Post: 116
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Play Store ID:
    Paolo Bersan
Re:Visualizzazione riga dal database in un fragment
« Risposta #1 il: 11 Ottobre 2017, 08:53:51 CEST »
0
Ciao, ho provato a caricare il tuo pezzo di codice in una app di test; quello che ho potuto verificare è che la parte di settaggio dei campi funziona. Io l'unica cosa che ho fatto di diverso rispetto al tuo codice è aver bypassato la richiesta http e usato una stringa prefissata (uguale a quella restituita dalla tua pagina php) per ricostruire l'oggetto json, nel dettaglio il pezzo di codice è questo:
Codice (Java): [Seleziona]
            //List<NameValuePair> params = new ArrayList<NameValuePair>();
            //params.add(new BasicNameValuePair("id", ""+id));

            // getting product details by making HTTP request
            // Note that product details url will use GET request
            //JSONObject json = jsonParser.makeHttpRequest(
            //        url_giocatore, "GET", params);

            String j="{\"Giocatore\":[{\"IdGiocatore\":\"4\",\"Cognome\":\"Neri\",\"Nome\":\"Luigi\",\"DataNascita\":\"1989-09-19\",\"Indirizzo\":\"Via Finlandia 54\"}],\"success\":1}";
            JSONObject json=new JSONObject(j);

Quale è il problema che hai? ti da qualche errore in particolare?
Ciao
P

Offline marco58

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
Re:Visualizzazione riga dal database in un fragment
« Risposta #2 il: 11 Ottobre 2017, 10:36:42 CEST »
0
Ti spiego in breve:
Ho fatto la login tramite L’activity di default di Android studio (perché sarebbe la main principale).. poi cliccando su login entri nel menu drawer dove ci sono le varie sezioni; una di queste è quella relativa a Giocatore.. ma va in crash subito dopo aver cliccato su login..

P.s. prima di cercare di reperire dati dal database funzionava e riuscivo a spostarmi nelle varie sezioni tramite il menu drawer

Offline berpao

  • Utente junior
  • **
  • Post: 116
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Play Store ID:
    Paolo Bersan
Re:Visualizzazione riga dal database in un fragment
« Risposta #3 il: 11 Ottobre 2017, 10:52:25 CEST »
0
Ah, ok, allora il problema mi sembra un altro... Hai provato a fare il debug del codice dietro il tasto login? Se la app scoppia brutalmente, molto probabilmente c'è qualche errore nella oncreate dell'activity che apri dopo la login; metti un breakpoint alla prima istruzione e vai di debug...
Se riesci, posta l'errore che compare nel log
Ciao
P

Offline marco58

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
Re:Visualizzazione riga dal database in un fragment
« Risposta #4 il: 11 Ottobre 2017, 12:50:26 CEST »
0
Ho lanciato il debug e mi escono questi errori sul log: