2017-07-03 2 views
0

Ich bekomme eine Daten Uri aus meiner Absicht und versuchen, die Attribute zu analysieren. Wenn jedoch das Attribut ein ‚+‘ Zeichen enthält, die getQueryParameter(attr) Methode konvertiert es zu einem ‚+‘ Zeichen ‚wie in dem documentationAndroid: Extrahieren von Attributen mit '+' Zeichen von einem uri

So this answer werden nicht funktionieren, wenn der Parameter enthält ein genannter‘.

Und this answer wandelt die '+' auf ein '_'

Mein Uri sieht irgendwie wie folgt aus: "MyApp:///?Attr=fdwGcv+fsdsfd_AS="

Antwort

0

Encode alle Abfrageparameter, während die URL zu erstellen.

String url = null; 
    try { 
     url = "MyApp:///?attr=" + URLEncoder.encode("fdwGcv+fsdsfd_AS=", "UTF-8"); 
    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } 
    Uri uri = Uri.parse(url); 

    System.out.print("attr::"+uri.getQueryParameter("attr")); 
+0

Haben Sie diesen Code getestet? Es gibt null zurück. Selbst beim Aufruf von getQueryParameterNames() gibt es einen Set mit der Größe 0 \ –

+0

zurück. Der Code wurde getestet - ich verwende "uri.getQueryParameter (" attr ")" Methode – Praveen

+0

Vielen Dank für Ihre Antwort, aber ich finde sie nicht sehr angenehm. Wie würde sich der Code ändern, wenn ich mehr als einen Parameter mit & getrennt habe? Warum sollte ich den ersten Parameter der encode-Methode fest codieren? –

Verwandte Themen