erten_fjerten Skrevet 24. mars 2012 Del Skrevet 24. mars 2012 (endret) Hei. Holder på å prøve å lage en timeplan-app i Android og er ikke så veldig erfaren med androidutvikling. Det som skal skje er at man søker, ved å skrive inn en studiekode, og appen vil søke gjennom et XML-dokument til den finner følgene studiekode og deretter skriver ut all informasjonen om den. Koden (som for øyeblikket er veldig simpel) fungerer helt utmerket i vanlig java, men når jeg prøver å bruke den i android ser det ikke ut til å fungere helt. Noen som har lyst å gi et lite hint, eller hjelpe meg på rett vei? Min lille teori er at jeg kanskje har lagt XML-dokumentet feil plass, men i såfall hvor bør jeg plassere den? Har prøvd å legge den rundt om i mange mapper men ser ikke ut til å fungere uansett. Read XMLClass (Alle gettere og settere er fjernet med hensyn til plass) public class ReadXMLFile { String id, name, day, time, note; public ReadXMLFile(){ //tom konstruktør } public void searchXMLDoc(String courseId) { try { File fXmlFile = new File("timeplanTest.xml"); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(fXmlFile); doc.getDocumentElement().normalize(); System.out.println("Root element :" + doc.getDocumentElement().getNodeName()); NodeList nList = doc.getElementsByTagName("course"); for (int temp = 0; temp < nList.getLength(); temp++) { Node nNode = nList.item(temp); if (nNode.getNodeType() == Node.ELEMENT_NODE) { Element eElement = (Element) nNode; if(getTagValue("id", eElement).equals(courseId)){ setId(getTagValue("id", eElement)); setName(getTagValue("name", eElement)); setDay(getTagValue("day", eElement)); setTime(getTagValue("time", eElement)); setNote(getTagValue("note", eElement)); } } } } catch (Exception e) { e.printStackTrace(); } } private static String getTagValue(String sTag, Element eElement) { NodeList nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes(); Node nValue = (Node) nlList.item(0); return nValue.getNodeValue().toString(); } /** * Gettere og settere nedover for alle feltene */ } Android koden som skal utføre et søk om man trykker på søkeknappen (akkurat nå søker den automatisk på IS-303, bare for å teste) public class TimeplanIS303Activity extends Activity implements OnClickListener { Button searchCourse; TextView cId, cName, cDay; EditText courseName; @Override public void onCreate(Bundle bundle) { super.onCreate(bundle); setContentView(R.layout.main); searchCourse = (Button) findViewById(R.id.bSearch); courseName = (EditText) findViewById(R.id.etCourseName); cId = (TextView) findViewById(R.id.courseId); cName = (TextView) findViewById(R.id.courseName); cDay = (TextView) findViewById(R.id.courseDay); searchCourse.setOnClickListener((android.view.View.OnClickListener)this); } public void onClick(View v) { ReadXMLFile rf = new ReadXMLFile(); rf.searchXMLDoc("IS303"); cId.setText(rf.getId()); cName.setText(rf.getName()); cDay.setText(rf.getDay()); } } Også til slutt main koden så dere kan se ID'ene <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Søk i Tiemplanen her" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CourseID" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/etCourseId" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPostalAddress" > <requestFocus /> </EditText> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Course Name" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/etCourseName" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPersonName" /> <Button android:id="@+id/bSearch" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Button" /> <TextView android:id="@+id/courseId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="t" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/courseName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="t" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/courseDay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="t" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout> Takk på forhånd for all hjelp jeg får! Endret 24. mars 2012 av erten_fjerten Lenke til kommentar
Wedvich Skrevet 28. mars 2012 Del Skrevet 28. mars 2012 Hvis du legger filen rett inn på minnekortet, kan du jo prøve: File fDir = Environment.getExternalStorageDirectory(); File fXmlFile = new File(fDir + "/timeplanTest.xml"); Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå