728x90
반응형

📃프로그레스바가 완료되면 다음 액티비티로 전환하는 소스코드를 작성하시오.


📝activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:progress="0"
android:layout_marginLeft="100dp"
android:layout_marginTop="300dp"
android:max="100"
tools:ignore="MissingConstraints" />
</RelativeLayout>
📝activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity2"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="핸들러테스트"
android:textSize="30dp"
android:gravity="center"
android:background="#ff9999"/>
</LinearLayout>
📝MainActivity.java
package com.project.myapplication;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.widget.ProgressBar;
public class MainActivity extends AppCompatActivity {
ProgressBar pb;
Intent intent;
Handler handler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
if(msg.what == 1) {
if(pb.getProgress() < pb.getMax()) {
pb.setProgress(pb.getProgress() + 1);
sendEmptyMessageDelayed(1, 500);
}
else if (pb.getProgress() == pb.getMax()) {
intent = new Intent(MainActivity.this, MainActivity2.class);
startActivity(intent);
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pb = findViewById(R.id.progressBar);
pb.setProgress(0);
handler.sendEmptyMessage(1);
}
}
📝MainActivity2.java
package com.project.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
}
}
728x90
반응형
'App > Android Studio' 카테고리의 다른 글
Android Studio - 어싱크 태스크와 타이머 (0) | 2022.08.11 |
---|---|
Android Studio - 스레드와 핸들러 (0) | 2022.08.11 |
Android Studio - 초 타이머 만들기 (0) | 2022.08.10 |
Android Studio - 태스크, 인텐트 플래그 (0) | 2022.08.10 |
Android Studio - 사용 권한 (0) | 2022.08.10 |
댓글