diff --git a/README.md b/README.md index bdd11c8b..b880866f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,35 @@ # Rapport -**Skriv din rapport här!** +** +fösta jag adderat en listview layout för att läsa jason item. jag adderat också Mountain,java jag användar varible namn +Till exempel Berg namn och storleksfälten meter och fot över havet i bergsexemplet. Sen jag användar daptern för att tillhandahålla vyer för en AdapterView, Returnerar en vy för varje objekt i en samling dataobjekt du tillhandahåller och kan användas med listbaserade användargränssnittswidgets. + +``` +Gson gson = new Gson(); +mountains = gson.fromJson(json,Mountain[].class); +``` + +Den här element hälpt mig användas för att konvertera Java-objekt till deras JSON-representation. Den kan också användas för att konvertera en JSON-sträng till ett likvärdigt Java-objekt. Gson kan arbeta med godtyckliga Java-objekt inklusive objekt som du inte har källan till. + +``` +ArrayAdapter arrayAdapter = new ArrayAdapter<>(this, R.layout.listview_item, R.id.item, mountains); + +``` +En adapter som hjälpte mig fungerar som en brygga mellan en AdapterView och de underliggande data för den view. +``` + ListView listView = findViewById(R.id.list_view); + listView.setAdapter(arrayAdapter); + listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView adapterView, View view, int i, long l) { + + } + }); + +``` +Den här hur jag koppla mellen ListView och adapter. +** _Du kan ta bort all text som finns sedan tidigare_. @@ -16,24 +44,31 @@ _Du kan ta bort all text som finns sedan tidigare_. Programkod ska se ut som exemplet nedan. Koden måste vara korrekt indenterad då den blir lättare att läsa vilket gör det lättare att hitta syntaktiska fel. ``` -function errorCallback(error) { - switch(error.code) { - case error.PERMISSION_DENIED: - // Geolocation API stöds inte, gör något - break; - case error.POSITION_UNAVAILABLE: - // Misslyckat positionsanrop, gör något - break; - case error.UNKNOWN_ERROR: - // Okänt fel, gör något - break; - } -} + Gson gson = new Gson(); + mountains = gson.fromJson(json,Mountain[].class); + + ArrayAdapter arrayAdapter = new ArrayAdapter<>(this, R.layout.listview_item, R.id.item, mountains); + + ListView listView = findViewById(R.id.list_view); + listView.setAdapter(arrayAdapter); + listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView adapterView, View view, int i, long l) { + + } + }); + + for (int i = 0; i < mountains.length; i++) { + Log.d("MainActivity ==>","Hittade ett berg" + mountains[i].getName() + " " + mountains[i].getAuxdata().getWiki()); + + + + } ``` Bilder läggs i samma mapp som markdown-filen. -![](android.png) +![](pic1.png) Läs gärna: diff --git a/app/build.gradle b/app/build.gradle index ff9c03db..7a0f2405 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,6 +29,7 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'com.google.code.gson:gson:2.9.0' + implementation 'androidx.recyclerview:recyclerview:1.2.1' } task archive(type: Zip) { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index afcde1e5..89860d1f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,8 @@ + + ", json); + + Gson gson = new Gson(); + mountains = gson.fromJson(json,Mountain[].class); + + ArrayAdapter arrayAdapter = new ArrayAdapter<>(this, R.layout.listview_item, R.id.item, mountains); + + ListView listView = findViewById(R.id.list_view); + listView.setAdapter(arrayAdapter); + + for (int i = 0; i < mountains.length; i++) { + Log.d("MainActivity ==>","Hittade ett berg" + mountains[i].getName() + " " + mountains[i].getAuxdata().getWiki()); + + + } + + + + + } + + + + + } diff --git a/app/src/main/java/com/example/networking/Mountain.java b/app/src/main/java/com/example/networking/Mountain.java new file mode 100644 index 00000000..ac0dd0a9 --- /dev/null +++ b/app/src/main/java/com/example/networking/Mountain.java @@ -0,0 +1,60 @@ +package com.example.networking; + +public class Mountain { + private String ID; + private String name; + private String type; + private String company; + private String location; + private String category; + private int size; + private int cost; + private Auxdata auxdata; + + public Mountain(String ID, String name, String type, String company, String location, String category, int size, int cost, Auxdata auxdata) { + this.ID = ID; + this.name = name; + this.type = type; + this.company = company; + this.location = location; + this.category = category; + this.size = size; + this.cost = cost; + this.auxdata = auxdata; + } + + public String getName() { + return name; + } + + public String getType() { + return type; + } + + public String getCompany() { + return company; + } + + public String getLocation() { + return location; + } + + public String getCategory() { + return category; + } + + public int getSize() { + return size; + } + + public int getCost() { + return cost; + } + + public Auxdata getAuxdata() { + return auxdata; + } + + @Override + public String toString(){return name;} +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4fc24441..d88f6469 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,13 +6,17 @@ android:layout_height="match_parent" tools:context=".MainActivity"> - + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.0" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/listview_item.xml b/app/src/main/res/layout/listview_item.xml new file mode 100644 index 00000000..cf16761b --- /dev/null +++ b/app/src/main/res/layout/listview_item.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 7d9df177..5e29f013 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:4.1.3' + classpath 'com.android.tools.build:gradle:7.1.2' // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 23790228..970878b4 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip diff --git a/pic1.png b/pic1.png new file mode 100644 index 00000000..b67c438a Binary files /dev/null and b/pic1.png differ