Hallo miteinander,
cooles Forum hier, ich hoffe ich habe meine Frage hier in die richtige Rubrik gepflanzt
Ich schreibe aktuell eine App mit der man von google prüfen kann Wie viele treffer es für einen begriff gibt. Folgenden Java Code habe ich bisher geschrieben:
package mamu.wordfight;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
/**
* @author mamu
* ClassProvider is able to give you really simple Statistics about a search query at Google
*/
public class SearchProvider {
private String result = null;
/**
* The Standardconstructor
*/
public SearchProvider() {
}
/**
* @param word The Word that is used for the search
* @return How many Hits the Search has for this keyword
*/
public int getStatsFromWord(String word) {
String rawMaterial = getTextFromWord(word);
ArrayList numbersOnly = new ArrayList();
String[] splittedStrings = rawMaterial.split("");
rawMaterial = splittedStrings[1];
splittedStrings = rawMaterial.split("");
rawMaterial = splittedStrings[0];
char[] numbersAndText = rawMaterial.toCharArray();
for(int i = 0; i < numbersAndText.length; i++) {
if(isDigit(numbersAndText[i])) {
numbersOnly.add(numbersAndText[i]);
}
}
return convertCharacterListToInteger(numbersOnly);
}
private String getTextFromWord(String word) {
return getTextFromURL("http://www.google.de/search?q=" + word);
}
private String getTextFromURL(String url) {
try {
URL urlObject = new URL(url);
java.net.URLConnection con = urlObject.openConnection();
con.setRequestProperty( "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" );
BufferedReader webData = new BufferedReader(new InputStreamReader(con.getInputStream()));
result = webData.readLine();
}
catch (MalformedURLException mue){
System.err.println("Ouch - a MalformedURLException happened.");
mue.printStackTrace();
}
catch (IOException io)
{
io.printStackTrace();
}
return result;
}
private boolean isDigit(char c) {
boolean result;
if(c == '0' ||
c == '1' ||
c == '2' ||
c == '3' ||
c == '4' ||
c == '5' ||
c == '6' ||
c == '7' ||
c == '8' ||
c == '9' ) {
result = true;
}
else {
result = false;
}
return result;
}
private Integer convertCharacterListToInteger(ArrayList characters) {
Integer returner = null;
if (characters.size() != 0) {
StringBuilder charactersAsString = new StringBuilder();
for (Character character : characters) {
charactersAsString.append(character.charValue());
}
returner = Integer.valueOf(charactersAsString.toString());
}
return returner;
}
}
Alles anzeigen
funktioniert auf dem PC auch richtig einwandfrei. Allerdings funktionierts auf dem Handy nicht. Ich hab in der Manifest.xml die Permissions internet und accessnetworkstate hinzugefügt, doch leider tut sich noch nichts. CatLog sagt Das Programm kackt in Zeile 50 ab also bei:
Ich bin echt noch sehr unerfahren was den ganzen Spass angeht, vll auch echt nen einfach billiger fehler aber es geht mir voll nicht in den kopf warum es aufm PC so gut klappt und auf dem Android so wegkackt. Achso ich schreibe nochmal dazu wie die Klasse da oben von der App aufgerufen wird. Es gibt eine Eingabeactivity und dann eine ergebnisactivity in der eingabeactivity gibts ein textfeld und der Text darin wird als extra an die ergebnisactivity gesendet. Die Settet dann den Text eines Textviews mittels
wobei keyword einfach nen string ist und sp ein SearchProvider und tv ein textview. Freunde ich bin echt am verzweifeln...
Danke für jede Antwort
lg
mamu