Gå til innhold

Anbefalte innlegg

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 av erten_fjerten
Lenke til kommentar
Videoannonse
Annonse

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...