From b4281d368911b07c37a04b6420d3394a53f74df9 Mon Sep 17 00:00:00 2001 From: musta Date: Tue, 3 May 2022 11:13:24 +0200 Subject: [PATCH 1/8] new1 --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 2 + .../java/com/example/networking/Auxdata.java | 10 +++ .../com/example/networking/MainActivity.java | 68 ++++++++++++++++++- .../java/com/example/networking/Mountain.java | 23 +++++++ app/src/main/res/layout/activity_main.xml | 7 +- app/src/main/res/layout/item.xml | 12 ++++ build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 9 files changed, 121 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/com/example/networking/Auxdata.java create mode 100644 app/src/main/java/com/example/networking/Mountain.java create mode 100644 app/src/main/res/layout/item.xml 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 @@ + + adapter; + private ListView listView; + private final String JSON_URL = "HTTPS_URL_TO_JSON_DATA_CHANGE_THIS_URL"; private final String JSON_FILE = "mountains.json"; + + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new JsonFile(this, this).execute(JSON_FILE); + + webView = findViewById(R.id.web_view); + webView.setWebViewClient(new WebViewClient()); + WebSettings webSettings = webView.getSettings(); + webSettings.setJavaScriptEnabled(true); + + + try { + + + adapter = new ArrayAdapter(MainActivity.this,R.layout.item); + ListView listView = findViewById(R.id.list_view); + listView.setAdapter(adapter); + listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView adapterView, View view, int i, long l) { + + } + }); + + + + + } catch (Exception e) { + e.printStackTrace(); + } + + } @Override public void onPostExecute(String json) { - Log.d("MainActivity", json); + Log.d("MainActivity ==>", json); + + Gson gson = new Gson(); + mountains = gson.fromJson(json,Mountain[].class); + adapter = new ArrayAdapter(MainActivity.this,R.layout.item,mountains); + + + + 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..669de0a1 --- /dev/null +++ b/app/src/main/java/com/example/networking/Mountain.java @@ -0,0 +1,23 @@ +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 String getName() { + return name; + } + + public Auxdata getAuxdata() { + return auxdata; + } + +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4fc24441..48ef274e 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,9 +6,10 @@ android:layout_height="match_parent" tools:context=".MainActivity"> - + + + + + \ 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 From 7ac34e88da340fef310d6eec3fd1c304447168dc Mon Sep 17 00:00:00 2001 From: musta Date: Wed, 4 May 2022 23:02:03 +0200 Subject: [PATCH 2/8] new2 --- .../com/example/networking/MainActivity.java | 28 ++++----------- .../java/com/example/networking/Mountain.java | 36 ++++++++++++++++++- app/src/main/res/layout/activity_main.xml | 13 ++++--- .../layout/{item.xml => listview_item.xml} | 9 +++-- 4 files changed, 52 insertions(+), 34 deletions(-) rename app/src/main/res/layout/{item.xml => listview_item.xml} (51%) diff --git a/app/src/main/java/com/example/networking/MainActivity.java b/app/src/main/java/com/example/networking/MainActivity.java index a9b363e4..97bd3d2c 100644 --- a/app/src/main/java/com/example/networking/MainActivity.java +++ b/app/src/main/java/com/example/networking/MainActivity.java @@ -20,7 +20,7 @@ public class MainActivity extends AppCompatActivity implements JsonTask.JsonTask private Mountain[] mountains; private WebView webView; - ArrayAdapter adapter; + private ListView listView; private final String JSON_URL = "HTTPS_URL_TO_JSON_DATA_CHANGE_THIS_URL"; @@ -35,32 +35,14 @@ protected void onCreate(Bundle savedInstanceState) { new JsonFile(this, this).execute(JSON_FILE); - webView = findViewById(R.id.web_view); - webView.setWebViewClient(new WebViewClient()); - WebSettings webSettings = webView.getSettings(); - webSettings.setJavaScriptEnabled(true); - - try { - adapter = new ArrayAdapter(MainActivity.this,R.layout.item); - ListView listView = findViewById(R.id.list_view); - listView.setAdapter(adapter); - listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView adapterView, View view, int i, long l) { - } - }); - } catch (Exception e) { - e.printStackTrace(); - } - } @@ -70,16 +52,19 @@ public void onPostExecute(String json) { Gson gson = new Gson(); mountains = gson.fromJson(json,Mountain[].class); - adapter = new ArrayAdapter(MainActivity.this,R.layout.item,mountains); + 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()); + } - + @@ -90,4 +75,5 @@ public void onPostExecute(String json) { + } diff --git a/app/src/main/java/com/example/networking/Mountain.java b/app/src/main/java/com/example/networking/Mountain.java index 669de0a1..c41d072b 100644 --- a/app/src/main/java/com/example/networking/Mountain.java +++ b/app/src/main/java/com/example/networking/Mountain.java @@ -11,13 +11,47 @@ public class Mountain { 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; } - } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 48ef274e..057c8eb8 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,14 +6,13 @@ android:layout_height="match_parent" tools:context=".MainActivity"> - \ No newline at end of file diff --git a/app/src/main/res/layout/item.xml b/app/src/main/res/layout/listview_item.xml similarity index 51% rename from app/src/main/res/layout/item.xml rename to app/src/main/res/layout/listview_item.xml index 5794c3ac..cf16761b 100644 --- a/app/src/main/res/layout/item.xml +++ b/app/src/main/res/layout/listview_item.xml @@ -1,12 +1,11 @@ - - + android:layout_height="wrap_content" /> \ No newline at end of file From 62f24051a28b1d72b0f3e26bde232995ff1e1f4f Mon Sep 17 00:00:00 2001 From: musta Date: Fri, 6 May 2022 20:03:44 +0200 Subject: [PATCH 3/8] ToString --- app/src/main/java/com/example/networking/MainActivity.java | 3 --- app/src/main/java/com/example/networking/Mountain.java | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/example/networking/MainActivity.java b/app/src/main/java/com/example/networking/MainActivity.java index 97bd3d2c..cfb6bf17 100644 --- a/app/src/main/java/com/example/networking/MainActivity.java +++ b/app/src/main/java/com/example/networking/MainActivity.java @@ -41,9 +41,6 @@ protected void onCreate(Bundle savedInstanceState) { - - - } @Override diff --git a/app/src/main/java/com/example/networking/Mountain.java b/app/src/main/java/com/example/networking/Mountain.java index c41d072b..8f7a1d4d 100644 --- a/app/src/main/java/com/example/networking/Mountain.java +++ b/app/src/main/java/com/example/networking/Mountain.java @@ -54,4 +54,7 @@ public int getCost() { public Auxdata getAuxdata() { return auxdata; } + + @Override + public String toString(){return name + auxdata;} } From 3bb887ee2531c6b55c2b0ddf4d383788c374cdaa Mon Sep 17 00:00:00 2001 From: musta Date: Mon, 9 May 2022 19:50:56 +0200 Subject: [PATCH 4/8] adderat Mountain.java och Auxdata.java --- .../com/example/networking/MainActivity.java | 52 +------------------ .../java/com/example/networking/Mountain.java | 2 +- app/src/main/res/layout/activity_main.xml | 14 ++--- 3 files changed, 11 insertions(+), 57 deletions(-) diff --git a/app/src/main/java/com/example/networking/MainActivity.java b/app/src/main/java/com/example/networking/MainActivity.java index cfb6bf17..35872a0a 100644 --- a/app/src/main/java/com/example/networking/MainActivity.java +++ b/app/src/main/java/com/example/networking/MainActivity.java @@ -2,75 +2,27 @@ import android.os.Bundle; import android.util.Log; -import android.view.View; -import android.webkit.WebSettings; -import android.webkit.WebView; -import android.webkit.WebViewClient; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.ListView; import androidx.appcompat.app.AppCompatActivity; -import androidx.recyclerview.widget.RecyclerView; - -import com.google.gson.Gson; @SuppressWarnings("FieldCanBeLocal") public class MainActivity extends AppCompatActivity implements JsonTask.JsonTaskListener { - private Mountain[] mountains; - private WebView webView; - - private ListView listView; - private final String JSON_URL = "HTTPS_URL_TO_JSON_DATA_CHANGE_THIS_URL"; private final String JSON_FILE = "mountains.json"; - - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new JsonFile(this, this).execute(JSON_FILE); - - - - - - - } @Override public void onPostExecute(String json) { - Log.d("MainActivity ==>", 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()); - - - - } - - - - - + Log.d("MainActivity", json); } - - - - - } + diff --git a/app/src/main/java/com/example/networking/Mountain.java b/app/src/main/java/com/example/networking/Mountain.java index 8f7a1d4d..ac0dd0a9 100644 --- a/app/src/main/java/com/example/networking/Mountain.java +++ b/app/src/main/java/com/example/networking/Mountain.java @@ -56,5 +56,5 @@ public Auxdata getAuxdata() { } @Override - public String toString(){return name + auxdata;} + 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 057c8eb8..7bb7e49a 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,13 +6,15 @@ android:layout_height="match_parent" tools:context=".MainActivity"> - + + \ No newline at end of file From 5b5e9338fa4a538b8e96dd7662184e05ebb844a7 Mon Sep 17 00:00:00 2001 From: musta Date: Mon, 9 May 2022 19:56:48 +0200 Subject: [PATCH 5/8] adderat nya layout som kallas listview.item.xml. I activity_main.xml andrat constrainlayout till linear layout --- app/src/main/res/layout/activity_main.xml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 7bb7e49a..d88f6469 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,14 +6,16 @@ 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" /> From 784b07e1899bd4735a8468249de792ecbf71c3f0 Mon Sep 17 00:00:00 2001 From: musta Date: Mon, 9 May 2022 19:59:56 +0200 Subject: [PATCH 6/8] adderat Gson elemnent med arrayAdapter --- .../com/example/networking/MainActivity.java | 48 ++++++++++++++++++- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/example/networking/MainActivity.java b/app/src/main/java/com/example/networking/MainActivity.java index 35872a0a..e00a033c 100644 --- a/app/src/main/java/com/example/networking/MainActivity.java +++ b/app/src/main/java/com/example/networking/MainActivity.java @@ -2,27 +2,71 @@ import android.os.Bundle; import android.util.Log; +import android.webkit.WebView; +import android.widget.ArrayAdapter; +import android.widget.ListView; import androidx.appcompat.app.AppCompatActivity; + +import com.google.gson.Gson; + @SuppressWarnings("FieldCanBeLocal") public class MainActivity extends AppCompatActivity implements JsonTask.JsonTaskListener { + private Mountain[] mountains; + private WebView webView; + + private ListView listView; + private final String JSON_URL = "HTTPS_URL_TO_JSON_DATA_CHANGE_THIS_URL"; private final String JSON_FILE = "mountains.json"; + + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new JsonFile(this, this).execute(JSON_FILE); + + + + + + + } @Override public void onPostExecute(String json) { - Log.d("MainActivity", json); + Log.d("MainActivity ==>", 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()); + + + + } + + + + + } -} + + + + +} From a6f70cfafc64bcc3e2a8de0ad5b6b952be91fec1 Mon Sep 17 00:00:00 2001 From: musta Date: Tue, 10 May 2022 03:05:38 +0200 Subject: [PATCH 7/8] slutt --- .../com/example/networking/MainActivity.java | 6 ------ pic1.png | Bin 0 -> 41104 bytes 2 files changed, 6 deletions(-) create mode 100644 pic1.png diff --git a/app/src/main/java/com/example/networking/MainActivity.java b/app/src/main/java/com/example/networking/MainActivity.java index e00a033c..127f0bac 100644 --- a/app/src/main/java/com/example/networking/MainActivity.java +++ b/app/src/main/java/com/example/networking/MainActivity.java @@ -32,11 +32,6 @@ protected void onCreate(Bundle savedInstanceState) { new JsonFile(this, this).execute(JSON_FILE); - - - - - } @Override @@ -55,7 +50,6 @@ public void onPostExecute(String json) { Log.d("MainActivity ==>","Hittade ett berg" + mountains[i].getName() + " " + mountains[i].getAuxdata().getWiki()); - } diff --git a/pic1.png b/pic1.png new file mode 100644 index 0000000000000000000000000000000000000000..b67c438afa1a7f0b793e2c814932320801ccd42c GIT binary patch literal 41104 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 AX#fBK literal 0 HcmV?d00001 From 2a6c2bc125d9886eabea2d028665e0af5bdaa3fd Mon Sep 17 00:00:00 2001 From: musta Date: Tue, 10 May 2022 03:08:00 +0200 Subject: [PATCH 8/8] slutt --- README.md | 65 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 50 insertions(+), 15 deletions(-) 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: