박지환

Get data from nodejs server

...@@ -32,6 +32,7 @@ dependencies { ...@@ -32,6 +32,7 @@ dependencies {
32 implementation 'androidx.appcompat:appcompat:1.3.0' 32 implementation 'androidx.appcompat:appcompat:1.3.0'
33 implementation 'com.google.android.material:material:1.4.0' 33 implementation 'com.google.android.material:material:1.4.0'
34 implementation 'androidx.constraintlayout:constraintlayout:2.0.4' 34 implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
35 + implementation 'org.jsoup:jsoup:1.13.1'
35 testImplementation 'junit:junit:4.13.2' 36 testImplementation 'junit:junit:4.13.2'
36 androidTestImplementation 'androidx.test.ext:junit:1.1.3' 37 androidTestImplementation 'androidx.test.ext:junit:1.1.3'
37 androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' 38 androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
......
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="com.example.holidaycounter"> 3 package="com.example.holidaycounter">
4 - 4 + <uses-permission android:name="android.permission.INTERNET"/>
5 <application 5 <application
6 android:allowBackup="true" 6 android:allowBackup="true"
7 android:icon="@mipmap/ic_launcher" 7 android:icon="@mipmap/ic_launcher"
8 android:label="@string/app_name" 8 android:label="@string/app_name"
9 android:roundIcon="@mipmap/ic_launcher_round" 9 android:roundIcon="@mipmap/ic_launcher_round"
10 android:supportsRtl="true" 10 android:supportsRtl="true"
11 + android:usesCleartextTraffic="true"
11 android:theme="@style/Theme.HolidayCounter"> 12 android:theme="@style/Theme.HolidayCounter">
12 <activity 13 <activity
13 android:name=".MainActivity" 14 android:name=".MainActivity"
......
...@@ -3,12 +3,64 @@ package com.example.holidaycounter; ...@@ -3,12 +3,64 @@ package com.example.holidaycounter;
3 import androidx.appcompat.app.AppCompatActivity; 3 import androidx.appcompat.app.AppCompatActivity;
4 4
5 import android.os.Bundle; 5 import android.os.Bundle;
6 +import android.os.Handler;
7 +import android.os.Message;
8 +import android.widget.TextView;
9 +
10 +import org.jsoup.Jsoup;
11 +import org.jsoup.nodes.Document;
12 +import org.jsoup.nodes.Element;
13 +
14 +import java.io.IOException;
6 15
7 public class MainActivity extends AppCompatActivity { 16 public class MainActivity extends AppCompatActivity {
17 + TextView todayDate;
18 + TextView dateName;
19 + TextView locDate;
20 + TextView leftDate;
21 + String url = "http://52.200.90.192:8080/app";
22 + String msg;
23 + final Bundle bundle = new Bundle();
24 +
25 +
26 + Handler handler = new Handler() {
27 + @Override
28 + public void handleMessage(Message msg) {
29 + Bundle bundle = msg.getData();
30 + String[] data = bundle.getString("message").split(",");
31 + todayDate.setText(data[0]);
32 + dateName.setText(data[1]);
33 + locDate.setText(Integer.parseInt(data[2].substring(4, 6)) + "월 " + Integer.parseInt(data[2].substring(6)) + "일");
34 + leftDate.setText("D-" + data[3]);
35 + }
36 + };
8 37
9 @Override 38 @Override
10 protected void onCreate(Bundle savedInstanceState) { 39 protected void onCreate(Bundle savedInstanceState) {
40 +
11 super.onCreate(savedInstanceState); 41 super.onCreate(savedInstanceState);
12 setContentView(R.layout.activity_main); 42 setContentView(R.layout.activity_main);
43 +
44 + todayDate = findViewById(R.id.todayDate);
45 + dateName = findViewById(R.id.dateName);
46 + locDate = findViewById(R.id.locDate);
47 + leftDate = findViewById(R.id.leftDate);
48 + new Thread() {
49 + public void run() {
50 + Document doc = null;
51 + try {
52 + doc = Jsoup.connect(url).get();
53 + Element elements = doc.select("body").first();
54 + msg = elements.text();
55 + bundle.putString("message", msg);
56 + Message msg = handler.obtainMessage();
57 + msg.setData(bundle);
58 + handler.sendMessage(msg);
59 + } catch (IOException e) {
60 + e.printStackTrace();
61 + }
62 + }
63 + }.start();
13 } 64 }
65 +
14 } 66 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -7,12 +7,51 @@ ...@@ -7,12 +7,51 @@
7 tools:context=".MainActivity"> 7 tools:context=".MainActivity">
8 8
9 <TextView 9 <TextView
10 - android:layout_width="wrap_content" 10 + android:id="@+id/leftDate"
11 - android:layout_height="wrap_content" 11 + android:layout_width="380dp"
12 - android:text="Hello World!" 12 + android:layout_height="217dp"
13 + android:text="D-0"
14 + android:textAlignment="center"
15 + android:textSize="200sp"
13 app:layout_constraintBottom_toBottomOf="parent" 16 app:layout_constraintBottom_toBottomOf="parent"
17 + app:layout_constraintHorizontal_bias="0.466"
14 app:layout_constraintLeft_toLeftOf="parent" 18 app:layout_constraintLeft_toLeftOf="parent"
15 app:layout_constraintRight_toRightOf="parent" 19 app:layout_constraintRight_toRightOf="parent"
16 - app:layout_constraintTop_toTopOf="parent" /> 20 + app:layout_constraintTop_toTopOf="parent"
21 + app:layout_constraintVertical_bias="0.278" />
22 +
23 + <TextView
24 + android:id="@+id/dateName"
25 + android:layout_width="364dp"
26 + android:layout_height="42dp"
27 + android:layout_marginTop="4dp"
28 + android:text="NONE"
29 + android:textAlignment="center"
30 + android:textSize="32sp"
31 + app:layout_constraintEnd_toEndOf="parent"
32 + app:layout_constraintHorizontal_bias="0.498"
33 + app:layout_constraintStart_toStartOf="parent"
34 + app:layout_constraintTop_toBottomOf="@+id/leftDate" />
35 +
36 + <TextView
37 + android:id="@+id/locDate"
38 + android:layout_width="210dp"
39 + android:layout_height="28dp"
40 + android:text="0월 0일"
41 + android:textAlignment="center"
42 + android:textSize="18sp"
43 + app:layout_constraintEnd_toEndOf="parent"
44 + app:layout_constraintStart_toStartOf="parent"
45 + app:layout_constraintTop_toBottomOf="@+id/dateName" />
46 +
47 + <TextView
48 + android:id="@+id/todayDate"
49 + android:layout_width="78dp"
50 + android:layout_height="19dp"
51 + android:layout_marginEnd="2dp"
52 + android:text="0000-00-00"
53 + android:textAlignment="viewEnd"
54 + app:layout_constraintBottom_toBottomOf="parent"
55 + app:layout_constraintEnd_toEndOf="parent" />
17 56
18 </androidx.constraintlayout.widget.ConstraintLayout> 57 </androidx.constraintlayout.widget.ConstraintLayout>
...\ No newline at end of file ...\ No newline at end of file
......