Partage
  • Partager sur Facebook
  • Partager sur Twitter

Intégrer donnée MYSQL dans requête Uri (Android)

    6 juillet 2021 à 17:07:38

    Bonjour,

    Dans mon application, je veux pouvoir entrer un code client qui va me renvoyer des informations sur ce dernier contenues dans une BDD Mysql.

    En fonction du code client renseigné dans l'EditText, l'application va me renvoyer dans une ListView, l'adresse, le nom, le téléphone etc ...

    Les coordonnées GPS de l'entreprise du client seront également récupérées mais non affichées dans la ListView (ces coordonnées seront récupérées dans la variable "positionnement".

    J'utilise un script PHP et du Json pour faire tout ça.

    Jusqu'à la c'est bon pour moi mais ce que je voudrais par la suite, c'est réutiliser cette variable "positionnement" qui ne me sert pas encore.

    Une fois les infos du client affichées dans la ListView, il faudrait que je puisse cliquer sur un bouton qui me permette d'ouvrir une URL google maps avec en complément de cette URL ma variable "positionnement" pour que la carte affichée soit en rapport avec le client affiché sur l'activité précédente.

    Voici le code me permettant de récupérer mes informations depuis ma BDD et les afficher dans une ListView :

    public class PartnerInformation extends AppCompatActivity {
    EditText txtvalue;
    Button btnfetch;
    ListView listview;
    ProgressDialog dialog;
    Button maps;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_partner_information);
    getSupportActionBar().hide();
    txtvalue = (EditText)findViewById(R.id.textSearch);
    btnfetch = (Button)findViewById(R.id.buttonfetch);
    listview = (ListView)findViewById(R.id.listView);
    maps = (Button) findViewById(R.id.maps);


    btnfetch.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    getData();
    }
    });
    }



    private void getData() {

    String value = txtvalue.getText().toString().trim();
    dialog = new ProgressDialog(PartnerInformation.this);
    dialog.setMessage("Patientez svp");
    dialog.show();

    if (value.equals("")) {
    Toast.makeText(this, "Veuillez entrer un code client", Toast.LENGTH_LONG).show();
    return;
    }

    String url = Config5.DATA_URL + txtvalue.getText().toString().trim();



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

    showJSON(response);
    }
    },
    new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
    Toast.makeText(PartnerInformation.this, error.getMessage().toString(), Toast.LENGTH_LONG).show();
    }
    });

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

    }


    private void showJSON(String response) {
    dialog.cancel();
    ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
    try {
    JSONObject jsonObject = new JSONObject(response);
    JSONArray result = jsonObject.getJSONArray(Config5.JSON_ARRAY);

    for (int i = 0; i < result.length(); i++) {
    JSONObject jo = result.getJSONObject(i);
    String adresse = jo.getString(Config5.KEY_ADRESSE);
    String raisonsociale = jo.getString(Config5.KEY_RAISONSOCIALE);
    String codepostal = jo.getString(Config5.KEY_CODEPOSTAL);
    String ville = jo.getString(Config5.KEY_VILLE);
    String telephone = jo.getString(Config5.KEY_TELEPHONE);
    String email = jo.getString(Config5.KEY_EMAIL);
    String siteweb = jo.getString(Config5.KEY_SITEWEB);
    String positionnement = jo.getString(Config5.KEY_POSITIONNEMENT);



    final HashMap<String, String> client = new HashMap<>();
    client.put(Config5.KEY_ADRESSE, adresse);
    client.put(Config5.KEY_RAISONSOCIALE, raisonsociale);
    client.put(Config5.KEY_CODEPOSTAL, codepostal);
    client.put(Config5.KEY_VILLE, ville);
    client.put(Config5.KEY_TELEPHONE, telephone);
    client.put(Config5.KEY_EMAIL, email);
    client.put(Config5.KEY_SITEWEB, siteweb);
    client.put(Config5.KEY_POSITIONNEMENT, positionnement);

    list.add(client);

    }


    } catch (JSONException e) {
    e.printStackTrace();
    }
    ListAdapter adapter = new SimpleAdapter(
    PartnerInformation.this, list, R.layout.activity_mylist,
    new String[]{Config5.KEY_ADRESSE, Config5.KEY_RAISONSOCIALE, Config5.KEY_CODEPOSTAL, Config5.KEY_VILLE, Config5.KEY_TELEPHONE, Config5.KEY_EMAIL, Config5.KEY_SITEWEB},
    new int[]{R.id.adresse, R.id.raisonsociale, R.id.codepostal, R.id.ville, R.id.telephone, R.id.email, R.id.siteweb});

    listview.setAdapter(adapter);



    Et voici dans l'idée ce que j'aimerais pouvoir faire par la suite :

    maps.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    String uri = "http://maps.google.com/maps?saddr=" + positionnement;
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
    startActivity(intent);
    }
    });

    Utiliser les coordonnées GPS récupérées dans la variable "positionnement" afin de compléter ma requête uri.

    -
    Edité par ThomasVial2 6 juillet 2021 à 17:11:17

    • Partager sur Facebook
    • Partager sur Twitter
      8 juillet 2021 à 11:55:29

      Hello, je ne suis pas pro en android mais as-tu regarder du côter de l'api Google maps que tu pourrais intégrer à ton projet. Il doit être possible de créer un élément "Maps" et lui passer les coordonée GPS pour avoir le point rouge si c'est bien ce que tu veux faire ?
      • Partager sur Facebook
      • Partager sur Twitter

      Intégrer donnée MYSQL dans requête Uri (Android)

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown