কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েডে একটি অ্যাক্টিভিটি শুরু করার আগে প্রোগ্রেস ডায়ালগ কীভাবে দেখাবেন?

AsyncTask এবং ProgressDialog ব্যবহার করে লোডিং স্ক্রিন

এই উদাহরণটি দেখায় কীভাবে একটি অ্যাক্টিভিটি বা লং-রানিং টাস্ক শুরু করার আগে প্রোগ্রেস ডায়ালগ দেখানো যায়। নোট: ProgressDialog ডিপ্রিকেটেড, আধুনিক অ্যাপে ProgressBar বা Jetpack Compose ব্যবহার করুন।

ধাপ ১: প্রজেক্ট তৈরি করুন

Android Studio-তে নতুন প্রজেক্ট।

ধাপ ২: লেআউট (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="4dp"
    tools:context=".MainActivity">
    <TextView
        android:layout_marginTop="30dp"
        android:text="অ্যান্ড্রয়েডে অ্যাক্টিভিটি শুরু করার আগে প্রোগ্রেস ডায়ালগ দেখানো.."
        android:textStyle="bold"
        android:textSize="24sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</LinearLayout>

ধাপ ৩: MainActivity.java - AsyncTask ব্যবহার

import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    ProgressDialog progressDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        progressDialog = new ProgressDialog(this);
        progressDialog.setTitle("কন্টেন্ট লোডার");
        progressDialog.setProgress(10);
        progressDialog.setMax(100);
        progressDialog.setMessage("লোড হচ্ছে...");
        
        new MyTask().execute();
    }

    public class MyTask extends AsyncTask<Void, Void, Void> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            progressDialog.show();
        }

        @Override
        protected Void doInBackground(Void... unused) {
            // ব্যাকগ্রাউন্ডে ভারী কাজ করুন (নেটওয়ার্ক, ডাটাবেস ইত্যাদি)
            try {
                Thread.sleep(3000); // ৩ সেকেন্ডจำ কাল
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            progressDialog.dismiss();
            // এখানে পরবর্তী অ্যাক্টিভিটি শুরু করুন
        }
    }
}

⚠️ গুরুত্বপূর্ণ সতর্কতা

ProgressDialog API 26-এ ডিপ্রিকেটেড এবং ভবিষ্যতে সরানো হতে পারে। আধুনিক বিকল্প:

বিকল্প ১: ProgressBar (XML-এ)

<ProgressBar
    android:id="@+id/progressBar"
    style="?android:attr/progressBarStyleLarge"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:visibility="gone" />

বিকল্প ২: Jetpack Compose-এ CircularProgressIndicator

@Composable
fun LoadingScreen() {
    Column(
        modifier = Modifier.fillMaxSize(),
        horizontalAlignment = Alignment.CenterHorizontally,
        verticalArrangement = Arrangement.Center
    ) {
        CircularProgressIndicator()
        Spacer(modifier = Modifier.padding(16.dp))
        Text("লোড হচ্ছে...")
    }
}

বিকল্প ৩: Coroutines + Flow (Kotlin)

lifecycleScope.launch {
    _isLoading.value = true
    try {
        val result = repository.loadData()
        _data.value = result
    } finally {
        _isLoading.value = false
    }
}

ধাপ ৪: ম্যানিফেস্ট

সাধারণ কনফিগারেশন।

  1. অ্যান্ড্রয়েড এলার্ট ডায়ালগে ListView প্রদর্শনের পদ্ধতি

  2. Progress Dialog in Android?

  3. How to display progress bar while loading a url to webView in Android?

  4. অ্যান্ড্রয়েডে Toast মেসেজ দেখানোর পদ্ধতি