-
Android 실습 (11)Android 2022. 7. 19. 12:04
< MainActivity2.java >
package com.example.ex_0719; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity2 extends AppCompatActivity { TextView txt1, txt2; Button btn1, btn2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); txt1 = findViewById(R.id.txt1); txt2 = findViewById(R.id.txt2); btn1 = findViewById(R.id.btn1); btn2 = findViewById(R.id.btn2); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 사용하고 싶은 Thread를 호출! MyThread thread = new MyThread(txt1); thread.start(); } }); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { MyThread thread = new MyThread(txt2); thread.start(); } }); } // Thread 생성 class MyThread extends Thread{ // 생성자 메소드를 통해 받아온 view를 담아줄 수 있는 필드 생성 TextView txt; // 원하는 view를 생성자 메소드를 통하여 가져오기! public MyThread(View view){ this.txt = (TextView) view; } @Override public void run() { for (int i = 1; i <= 10; i++){ // Handler 호출하여 UI 변경 요청! Message msg = new Message(); msg.arg1 = i; msg.obj = txt; handler.sendMessage(msg); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } Handler handler = new Handler(){ @Override public void handleMessage(@NonNull Message msg) { int num = msg.arg1; TextView txt = (TextView) msg.obj; txt.setText(String.valueOf(num)); } }; }
'Android' 카테고리의 다른 글
Android 실습 (12) (0) 2022.07.20 Android 이론 (4) (0) 2022.07.20 Android 실습 (10) (0) 2022.07.19 Android 실습 (9) (0) 2022.07.18 Android 실습 (8) (0) 2022.07.15