Parcourir la source

added retrofit

loparev@kansk-tc.ru il y a 4 ans
Parent
commit
b1e54c0381

+ 1 - 0
Session1/.idea/gradle.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="GradleMigrationSettings" migrationVersion="1" />
   <component name="GradleSettings">
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>

+ 1 - 0
Session1/app/build.gradle

@@ -30,6 +30,7 @@ dependencies {
     implementation 'androidx.core:core-ktx:1.1.0'
     implementation 'androidx.appcompat:appcompat:1.1.0'
     implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+    implementation 'com.appunity.retrofit2:converter-gson:2.0.2'
     testImplementation 'junit:junit:4.12'
     androidTestImplementation 'androidx.test.ext:junit:1.1.1'
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

+ 28 - 2
Session1/app/src/main/java/com/example/session1/BanksActivity.kt

@@ -3,11 +3,37 @@ package com.example.session1
 import androidx.appcompat.app.AppCompatActivity
 import android.os.Bundle
 import kotlinx.android.synthetic.main.activity_banks.*
+import retrofit2.Call
+import retrofit2.Callback
+import retrofit2.Response
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
+import java.util.*
 
 class BanksActivity : AppCompatActivity() {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_banks)
-        webv.loadUrl("http://ya.ru");
+        val retrofit=Retrofit.Builder()
+            .baseUrl("https://www.cbr-xml-daily.ru/")
+            .addConverterFactory(GsonConverterFactory.create())
+            .build()
+        val jsonPlaceHolderApi=retrofit.create(JsonPlaceHolderApi::class.java)
+        val call: Call<Valutes> =jsonPlaceHolderApi.course
+        call.enqueue(object:Callback<Valutes>{
+            override fun onResponse(p0: Call<Valutes>, p1: Response<Valutes>) {
+
+                val course:Valutes=p1.body()
+                if (course!=null){
+                    data.append(course.Valute.USD.Value)
+                }
+            }
+
+            override fun onFailure(p0: Call<Valutes>?, p1: Throwable?) {
+                data.setText(p1.toString())
+            }
+        }
+
+        )
     }
-}
+}

+ 9 - 0
Session1/app/src/main/java/com/example/session1/CourseAPI.kt

@@ -0,0 +1,9 @@
+package com.example.session1
+
+import retrofit2.Call
+import retrofit2.http.GET
+
+interface JsonPlaceHolderApi{
+    @get:GET("daily_json.js")
+    val course: Call<Valutes>
+}

+ 16 - 0
Session1/app/src/main/java/com/example/session1/Valuta.kt

@@ -0,0 +1,16 @@
+package com.example.session1
+data class Valutes (
+    val Valute:Valute_N,
+    val Date:String
+
+)
+data class Valute_N(
+    val USD:Valute_Value,
+    val EUR:Valute_Value
+)
+data class Valute_Value(
+    val Name:String,
+    val Value:String?=null,
+    val CharCode:String?=null,
+    val Previous:String?=null
+)

+ 6 - 11
Session1/app/src/main/res/layout/activity_banks.xml

@@ -7,17 +7,12 @@
     tools:context=".BanksActivity">
 
     <TextView
-        android:id="@+id/textView"
+        android:id="@+id/data"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="TextView"
-        tools:layout_editor_absoluteX="109dp"
-        tools:layout_editor_absoluteY="131dp" />
-
-    <WebView
-        android:id="@+id/webv"
-        android:layout_width="409dp"
-        android:layout_height="579dp"
-        tools:layout_editor_absoluteX="1dp"
-        tools:layout_editor_absoluteY="151dp" />
+        android:text="Курс доллара: "
+        android:textSize="40dp"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 1 - 0
Session1/app/src/main/res/layout/activity_main.xml

@@ -63,6 +63,7 @@
         android:layout_marginTop="40dp"
         android:background="@drawable/enter_button"/>
 
+
 </LinearLayout>
 
     </LinearLayout>