Hallo,
ich entwickle gerade eine Android-App mit Java und habe ein grundsätzliches Problem mit Strings, die ich aus ner Funktion zurückgeben will.
Ich benutze in der folgenden Funktion einen SAX XML Parser und hole mir daraus ein paar Attribute:
Wie bekomme ich die einzelnen Strings der Items also z.B. xml_names[0] als Rückgabewert aus der Funktion raus? Ist das überhaupt der richtige Weg? Habe auch schon versucht, die z.B.
als globale Variable zu definieren, erhalte dann aber eine Null Pointer Exception...
Kann die Funktion auch nicht als "private static" definieren, weil die getassets()-Funktion eine nicht statische Methode ist.
Weiß jemand Rat und kann mir vllt sogar ein kleines Code Snippet posten?
Danke!
ich entwickle gerade eine Android-App mit Java und habe ein grundsätzliches Problem mit Strings, die ich aus ner Funktion zurückgeben will.
Ich benutze in der folgenden Funktion einen SAX XML Parser und hole mir daraus ein paar Attribute:
Java:
public void parseXML() {
String parsedData = "";
try {
Log.w("AndroidParseXMLActivity", "Start");
/** Handling XML */
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
XMLContentHandler myXMLHandler = new XMLContentHandler();
xr.setContentHandler(myXMLHandler);
AssetManager assetManager = getAssets();
InputStream inputStream = null;
try {
inputStream = assetManager.open("calimero.xml");
} catch (IOException e) {
Log.e("tag", e.getMessage());
}
xr.parse(new InputSource(inputStream));
ArrayList<Datapoint> itemsList = myXMLHandler.getItemsList();
int datapoint_size = itemsList.size();
String xml_names[] = new String [datapoint_size];
String xml_states[] = new String [datapoint_size];
String xml_dptIDs[] = new String [datapoint_size];
String xml_groupadresses[] = new String [datapoint_size];
String xml_mainNumbers[] = new String [datapoint_size];
String xml_priority[] = new String [datapoint_size];
for(int i=0;i<itemsList.size();i++){
Datapoint item = itemsList.get(i);
parsedData = parsedData + "----->\n";
parsedData = parsedData + "Name: " + item.getName() + "\n";
xml_names[i] = item.getName();
parsedData = parsedData + "stateBased: " + item.getStateBased() + "\n";
xml_states[i] = item.getStateBased();
parsedData = parsedData + "mainNumber: " + item.getMainNumber() + "\n";
xml_mainNumbers[i] = item.getMainNumber();
parsedData = parsedData + "dptID: "+ item.getDptID() + "\n";
xml_dptIDs[i] = item.getDptID();
parsedData = parsedData + "Groupadress: "+ item.getGroupadress() + "\n";
xml_groupadresses[i] = item.getGroupadress();
parsedData = parsedData + "priority: "+ item.getPriority() + "\n";
xml_priority[i] = item.getPriority();
}
//TODO die Werte auch außerhalb der Methode verfügbar machen
Log.w("AndroidParseXMLActivity", "Done");
}
catch (Exception e) {
Log.w("AndroidParseXMLActivity",e );
}
}
Wie bekomme ich die einzelnen Strings der Items also z.B. xml_names[0] als Rückgabewert aus der Funktion raus? Ist das überhaupt der richtige Weg? Habe auch schon versucht, die z.B.
Java:
static String xml_names[];
Kann die Funktion auch nicht als "private static" definieren, weil die getassets()-Funktion eine nicht statische Methode ist.
Weiß jemand Rat und kann mir vllt sogar ein kleines Code Snippet posten?
Danke!