i made a xml parser thanks to this forum, but i have a new problem.
it makes 3 spinners and after that it reads the values out of it and prints the right text. it all happens when the app starts up. but now i want to add a button and when you press the button this all happens. so i tried to make a class into my code and the class holds the xml parser and other stuf. In the public void oncreate i want to make the button code that calls the xml class. but when i make this my Strings wont work any more and i have to add final, but final means that you can't edit the String. so how can i get this working?
this is my code:
Using java Syntax Highlighting
- package org.neotech.data_file_based;
- import java.io.IOException;
- import org.xmlpull.v1.XmlPullParserException;
- import android.app.Activity;
- import android.content.res.XmlResourceParser;
- import android.os.Bundle;
- import android.util.Log;
- import android.widget.ArrayAdapter;
- import android.widget.Spinner;
- import android.widget.TextView;
- public class data_file_based extends Activity {
- /** Called when the activity is first created. */
- final static String TAG = "CompXML";
- String boek = "";
- String text = "";
- int hoofdstuk = 0;
- int vers = 0;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Spinner spinner_boeken = (Spinner) findViewById(R.id.spinner_boeken);
- ArrayAdapter adapter_boeken = ArrayAdapter.createFromResource(
- this, R.array.boeken, android.R.layout.simple_spinner_item);
- adapter_boeken.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- spinner_boeken.setAdapter(adapter_boeken);
- Spinner spinner_hoofdstukken = (Spinner) findViewById(R.id.spinner_hoofdstukken);
- ArrayAdapter adapter_hoofdstukken = ArrayAdapter.createFromResource(
- this, R.array.hoofdstukken, android.R.layout.simple_spinner_item);
- adapter_hoofdstukken.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- spinner_hoofdstukken.setAdapter(adapter_hoofdstukken);
- Spinner spinner_versen = (Spinner) findViewById(R.id.spinner_versen);
- ArrayAdapter adapter_versen = ArrayAdapter.createFromResource(
- this, R.array.versen, android.R.layout.simple_spinner_item);
- adapter_versen.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- spinner_versen.setAdapter(adapter_versen);
- TextView tv = (TextView) findViewById(R.id.generated_text);
- tv.setText("");
- String s_zoek_boek = spinner_bijbelboeken.getSelectedItem().toString();
- String s_zoek_hoofdstuk = spinner_hoofdstukken.getSelectedItem().toString();
- String s_zoek_vers = spinner_versen.getSelectedItem().toString();;
- int i_zoek_hoofdstuk = Integer.parseInt(s_zoek_hoofdstuk);
- int i_zoek_vers = Integer.parseInt(s_zoek_vers);
- try
- {
- XmlResourceParser xrp = this.getResources().getXml(R.xml.data);
- while (xrp.getEventType() != XmlResourceParser.END_DOCUMENT) {
- if (xrp.getEventType() == XmlResourceParser.START_TAG) {
- String s = xrp.getName();
- if (s.equals("boek")) {
- boek = xrp.getAttributeValue(null, "name");
- int i = xrp.getAttributeIntValue(null, "boek", 0);
- } else if (s.equals("hoofdstuk")) {
- hoofdstuk = xrp.getAttributeIntValue(null, "name", 0);
- } else if (s.equals("vers")) {
- vers = xrp.getAttributeIntValue(null, "name", 0);
- }
- } else if (xrp.getEventType() == XmlResourceParser.END_TAG) {
- String s = xrp.getName();
- if(s.equals("vers")){
- //set text
- if(vers == i_zoek_vers && hoofdstuk == i_zoek_hoofdstuk && boek.equals(s_zoek_boek)){
- tv.append(boek + " " + hoofdstuk + ":" + vers + "\n" + text + "\n\n");
- }
- }
- } else if (xrp.getEventType() == XmlResourceParser.TEXT) {
- text = xrp.getText();
- }
- xrp.next();
- }
- //einde while
- xrp.close();
- //try fails
- } catch (XmlPullParserException xppe) {
- Log.e(TAG, "Failure of .getEventType or .next, probably bad file format");
- xppe.toString();
- } catch (IOException ioe) {
- Log.e(TAG, "Unable to read resource file");
- ioe.printStackTrace();
- }
- }
- }
Parsed in 0.049 seconds, using GeSHi 1.0.8.4

