Ich habe ein HTTP GET, das Informationen von einem URI empfängt. Der URI ist für Google Shopping.Eine Möglichkeit, einen URI basierend auf Benutzereingabe zu bearbeiten?
https://www.googleapis.com/shopping/search/v1/public/products?key=key&country=US&q=digital+camera&alt=atom
(verließ meinen Schlüssel).
Gibt es eine Möglichkeit, dass ich es von
q=digital+camera
auf alles, was ein Benutzer legt in einem EditText ändern?
Im Grunde möchte ich den EditText ändern, was bei Google Shopping gesucht wird.
ersten Bildschirm ProductSearchEntry mit EditText für Suchkriterien:
-Code für ProductSearchEntry
public class ProductSearchEntry extends Activity{
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.productsearchentry);
Button search = (Button) findViewById(R.id.searchButton);
search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent searchIntent = new Intent(getApplicationContext(), ProductSearch.class);
startActivity(searchIntent);
}
});
}
}
Dann habe ich eine zweite Klasse, ProduktSuche, ohne Bild, aber nur diesen Code:
public class ProductSearch extends Activity{
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.productsearchresults);
EditText searchQuery = (EditText) findViewById(R.id.searchQuery);
ProductSearchMethod test = new ProductSearchMethod();
String entry;
TextView httpStuff = (TextView) findViewById(R.id.httpTextView);
try {
entry = test.getSearchData(searchQuery.getText().toString());
httpStuff.setText(entry);
} catch (Exception e) {
e.printStackTrace();
}
}
}
, die die ProductSearchMethod Klasse verweist, die aus einem Textview besteht, die mit dem Code empfangen in der HTTP-GET geändert wird:
Code:
public class ProductSearchMethod {
public String getSearchData(String query) throws Exception{
BufferedReader in = null;
String data = null;
try{
HttpClient client = new DefaultHttpClient();
URI site = new URI("https://www.googleapis.com/shopping/search/v1/public/products?key=key&country=US&q="+query.replace(" ","+")+"&alt=atom");
HttpGet request = new HttpGet();
request.setURI(site);
HttpResponse response = client.execute(request);
in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String l = "";
String nl = System.getProperty("line.seperator");
while((l = in.readLine()) !=null){
sb.append(l + nl);
}
in.close();
data = sb.toString();
return data;
}finally{
if (in != null){
try{
in.close();
return data;
}catch (Exception e){
e.printStackTrace();
}
}
}
}
}
ProductSearchMethod kommt toll, aber es ändert nicht den Text von "Loading Items" in den Website-Code. Ich hatte es vorher funktioniert, aber dann habe ich versucht zu bearbeiten, was es gesucht (all dies ^) und jetzt ändert es sich nicht.
Ja! Ich habe es repariert. Ich danke dir sehr! – Cole