浏览代码

Valutes is working!!!

dedomorozoff 4 年之前
父节点
当前提交
fe971045cd

+ 1 - 1
app/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="ru.loparev.session1">
-
+<uses-permission android:name="android.permission.INTERNET"></uses-permission>
     <application
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"

+ 9 - 0
app/src/main/java/ru/loparev/session1/CourseAPI.kt

@@ -0,0 +1,9 @@
+package ru.loparev.session1
+
+import retrofit2.Call
+import retrofit2.http.GET
+
+interface JsonPlaceHolderAPI {
+    @get:GET("daily_json.js")
+    val course:Call<Valuta>
+}

+ 26 - 0
app/src/main/java/ru/loparev/session1/MainActivity.kt

@@ -10,6 +10,11 @@ import androidx.appcompat.app.AlertDialog
 import androidx.appcompat.app.AppCompatActivity
 import androidx.fragment.app.DialogFragment
 import kotlinx.android.synthetic.main.activity_main.*
+import retrofit2.Call
+import retrofit2.Callback
+import retrofit2.Response
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
 import java.text.SimpleDateFormat
 import java.util.*
 
@@ -20,8 +25,29 @@ class MainActivity : AppCompatActivity() {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_main)
         dateNow.text=getCurrentDate()
+//add Retrofit for get JSON
+        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<Valuta> = jsonPlaceHolderAPI.course
+        call.enqueue(object :Callback<Valuta>{
+            override fun onResponse(p0: Call<Valuta>, p1: Response<Valuta>) {
+                val course:Valuta=p1.body()
+                if (course!=null){
+                    USD_value.text= String.format("%.2f",course.Valute.USD.Value.toDouble())
+                    EUR_value.text=String.format("%.2f",course.Valute.EUR.Value.toDouble())
+                }
+            }
+
+            override fun onFailure(p0: Call<Valuta>?, p1: Throwable?) {
+
+            }
+        })
     }
 
+
     //    Function for get date
     fun getCurrentDate(): String {
     //val currentDate=Calendar.getInstance().time

+ 11 - 4
app/src/main/res/layout/activity_main.xml

@@ -129,6 +129,7 @@
                 android:orientation="horizontal">
 
                   <TextView
+                      android:layout_marginStart="30dp"
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:text="USD"
@@ -137,8 +138,10 @@
                       android:textColor="@color/colorBlack"
                       android:layout_gravity="center_vertical"
                       android:gravity="start"
-                      />
+                      android:layout_marginLeft="30dp" />
                 <TextView
+                    android:layout_marginStart="10dp"
+                    android:id="@+id/USD_value"
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:text="0.0"
@@ -146,7 +149,9 @@
                       android:textSize="13sp"
                       android:textColor="@color/colorFont"
                       android:layout_gravity="center_vertical"
-                      /><TextView
+                    android:layout_marginLeft="10dp" />
+                <TextView
+                android:layout_marginStart="10dp"
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:text="EUR"
@@ -155,8 +160,10 @@
                       android:textColor="@color/colorBlack"
                       android:layout_gravity="center_vertical"
                       android:gravity="start"
-                      />
+                    android:layout_marginLeft="10dp" />
                 <TextView
+                    android:id="@+id/EUR_value"
+                    android:layout_marginStart="10dp"
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:text="0.0"
@@ -164,7 +171,7 @@
                       android:textSize="13sp"
                       android:textColor="@color/colorFont"
                       android:layout_gravity="center_vertical"
-                      />
+                    android:layout_marginLeft="10dp" />
 
             </LinearLayout>
         </androidx.cardview.widget.CardView>