ডেটা দিয়ে তালিকাগুলি লোড করার আগে একটি তালিকায় থাকা কার্যকলাপে কীভাবে অগ্রগতি বার (চেনাশোনা) প্রদর্শিত হয়


141

আমি একটি আছে ListViewআমার দ্বিতীয় activity.OnItemClickএটি আমি একটি webservice ডেকে ডেটা আনতে করার চেষ্টা করছে। এবং এর পরে আমি তৃতীয় ক্রিয়াকলাপে চলে যাচ্ছি যা ListViewপূর্ববর্তী ক্রিয়াকলাপের বিবরণও রয়েছেListView আইটেমের ।

আমি এটি পপুল করার আগে একটি অগ্রগতি ডায়ালগ প্রদর্শন করতে চাই ListView

আমি বুঝতে পারি না কীভাবে এটি করা যায় ListView? কেউ কীভাবে এটি করতে জানেন?

আমার কোড-

ThirdActivity.java

   package com.google.iprotect;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.xmlpull.v1.XmlPullParserException;

import com.google.iprotect.layout.TitleBarLayout;

import android.app.Activity;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.content.res.XmlResourceParser;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.TextView;

public class ThirdActivity extends ListActivity implements OnItemClickListener{

    JSONArray jArray1,jArray2;
    String one,two,three,tablename;
    String color,r;
    JSONObject responseJSON;
    TitleBarLayout titlebarLayout;
    final ArrayList<Tables> arraylist = new ArrayList<Tables>();
    TextView tableName;
    ColorStateList colorStateList1;
    String email1,password1;
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.thirdactivity);

        ListView lv=getListView();
        lv.setOnItemClickListener(this);


        tablename=getIntent().getExtras().getString("Table Name");
        email1 = getIntent().getExtras().getString("email");
        password1 =getIntent().getExtras().getString("password");

        titlebarLayout = new TitleBarLayout(ThirdActivity.this);
        titlebarLayout.setLeftButtonText("go Back");
        titlebarLayout.setRightButtonText("Logout");
        titlebarLayout.setTitle(tablename);
        titlebarLayout.setLeftButtonSize(70,40);
        titlebarLayout.setRightButtonSize(70,40);
        //titlebarLayout.setLeftButtonLeftDrawable(R.drawable.refresh);

        //titlebarLayout.setRightButtonLeftDrawable(R.drawable.buttonrefresh);
        //titlebarLayout.setLeftButtonBackgroundColor(Color.rgb(255,255,255));
        //titlebarLayout.setRightButtonBackgroundColor(Color.rgb(34,49,64));
        //titlebarLayout.setLeftButtonTextColor(Color.rgb(255,255,255));
        //titlebarLayout.setRightButtonTextColor(Color.rgb(255,255,0));     

        XmlResourceParser parser1 =getResources().getXml(R.color.colorstatelist);


        try {
            colorStateList1 = ColorStateList.createFromXml(getResources(), parser1);
            titlebarLayout.setRightButtonTextColor(colorStateList1);
        } catch (XmlPullParserException e) {    
            e.printStackTrace();
        } catch (IOException e) {

            e.printStackTrace();
        }

        OnClickListener listener = new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                if (v.getId() == R.id.left_button) {
                    Intent intent = new Intent(ThirdActivity.this,SecondActivity.class);
                    intent.putExtra("email", email1);
                    intent.putExtra("password", password1);
                    startActivity(intent);
                    finish();

                } else if (v.getId() == R.id.right_button) {
                    Intent intent = new Intent(ThirdActivity.this,
                            MainActivity.class);
                    //intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    intent.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                    ThirdActivity.this.startActivity(intent);

                }
            }
        };
        titlebarLayout.setLeftButtonOnClickListener(listener);
        titlebarLayout.setRightButtonOnClickListener(listener);


        updateTableList();




    }

    private void updateTableList() {
        // TODO Auto-generated method stub
        //final ProgressDialog pd1=ProgressDialog.show(this, "Calling Webservice", "Waiting...", true, false);

        final ProgressBar pbHeaderProgress = (ProgressBar) findViewById(R.id.pbHeaderProgress);

        new AsyncTask<Void, Void, Void>() {


            protected void onPreExecute() {
                // TODO Auto-generated method stub
                super.onPreExecute();
                pbHeaderProgress.setVisibility(View.VISIBLE);
            }



            protected Void doInBackground(Void... params) {
                r = invokeWebService1(tablename);
                //pd1.dismiss();

                try {
                    responseJSON = new JSONObject(r);
                    //json reading
                    jArray1 = responseJSON.getJSONArray("FirstThree");//get JSONArray jArray1 from JSONObject with name FirstThree
                    jArray2 = responseJSON.getJSONArray("Color");//get JSONArray jArray2 from JSONOobject with name Color
                    JSONObject json_data1 = null;
                    JSONObject json_data2 = null;

                    for (int i = 0; i < jArray1.length(); i++) {
                        json_data1 = jArray1.getJSONObject(i);//get JSONObject json_data1 from JSONArray at index i;
                        one = json_data1.getString("One");//get value from JSONObject json_data1 with key "One"
                        two = json_data1.getString("Two");
                        three = json_data1.getString("Three");
                        json_data2 = jArray2.getJSONObject(i);
                        color = json_data2.getString("color");//get value from JSONObject json_data2 with key "color"

                        Tables tables = new Tables();
                        //set value to Tables Class
                        tables.column1 = one;
                        tables.column2 = two;
                        tables.column3 = three;
                        tables.tableName=tablename;
                        tables.color=color;
                        //add Tables object into ArrayList<Tables>
                        arraylist.add(tables);

                        Log.i("ONE", json_data1.getString("One"));
                        Log.i("TWO", json_data1.getString("Two"));
                        Log.i("THREE", json_data1.getString("Three"));
                        Log.i("color",""+ json_data2.getString("color"));
                    }

                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return null;
            }

            protected void onPostExecute(Void result) {
                pbHeaderProgress.setVisibility(View.GONE);

                //Custom Adapter for ListView
                TableDetailAdapter adaptor = new TableDetailAdapter(ThirdActivity.this,
                        R.layout.table_data_list_item, arraylist);
                setListAdapter(adaptor);
            }
        }.execute();

    }

    protected String invokeWebService1(String tablename2) {
        // TODO Auto-generated method stub
        String response = "";
        try {
            WebService webService = new WebService(
            "http://sphinx-solution.com/iProtect/api.php?");

            // Pass the parameters if needed
            Map<String, String> params = new HashMap<String, String>();
            params.put("action", "getTableRecords");
            params.put("tablename", tablename2);
            params.put("email", email1);
            params.put("password", password1);

            // Get JSON response from server the "" are where the method name
            // would normally go if needed example
            response = webService.WebGet("auth", params);

        } catch (Exception e) {
            Log.d("Error: ", e.getMessage());
        }
        return response;
    }


    public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
        // TODO Auto-generated method stub

        Log.v("", "Click ListItem Number "+position);
        Intent intent = new Intent(ThirdActivity.this,FourthActivity.class);
        intent.putExtra("Json", responseJSON.toString());//sending json Object as a string to next activity
        intent.putExtra("Table Name", tablename);
        intent.putExtra("email", email1);
        intent.putExtra("password", password1);
        intent.putExtra("Item No", position);
        startActivity(intent);

    }

}

thirdactivity.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:id="@+id/linlaHeaderProgress"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".ThirdActivity" >

    <include
        android:id="@+id/titlebar"
        layout="@layout/titlebar_layout" />

    <ProgressBar
        android:id="@+id/pbHeaderProgress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="2" >
    </ProgressBar>

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="260dp" 
        android:layout_weight="5.04">
    </ListView>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="@dimen/titlebar_height"
        android:layout_alignParentBottom="true"
        android:background="@color/footer_bg_color"
        android:gravity="bottom"
        android:orientation="horizontal" >

        <include
            android:id="@+id/footer"
            android:layout_height="@dimen/titlebar_height"
            android:layout_gravity="bottom|center_horizontal"
            layout="@layout/footer_layout" />
    </LinearLayout>

</LinearLayout>

আপনি এই ক্যোয়ারীটি ইন্টারনেটে অনুসন্ধান করেছেন? stackoverflow.com/questions/7061281/…
পঙ্কজ কুমার

4
পঙ্কজ- আমি কীভাবে প্রগ্রেসডায়ালগ প্রদর্শন করতে জানি তবে আমি অগ্রগতি ডায়ালগের পরিবর্তে কেবল অগ্রগতিবার বৃত্তটি প্রদর্শন করতে চাই।
অনি

উত্তর:


175

লোড করার সময় একটি প্রগতি বার (বৃত্ত) দেখানোর বিভিন্ন পদ্ধতি রয়েছে activity। আপনার ক্ষেত্রে ListViewএটির সাথে একটি ।

অ্যাকশনবারে

আপনি যদি কোনও ব্যবহার করে থাকেন তবে আপনি এই জাতীয় ActionBarকল করতে ProgressBarপারেন (এটি আপনার মধ্যে যেতে পারেonCreate()

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);  
setProgressBarIndeterminateVisibility(true);

এবং তালিকাটি প্রদর্শন করার পরে এটি লুকিয়ে রাখুন।

setProgressBarIndeterminateVisibility(false);

বিন্যাসে (এক্সএমএল)

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/linlaHeaderProgress"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:orientation="vertical"
        android:visibility="gone" >

        <ProgressBar
            android:id="@+id/pbHeaderProgress"
            style="@style/Spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
        </ProgressBar>
    </LinearLayout>

    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:cacheColorHint="@android:color/transparent"
        android:divider="#00000000"
        android:dividerHeight="0dp"
        android:fadingEdge="none"
        android:persistentDrawingCache="scrolling"
        android:smoothScrollbar="false" >
    </ListView>
</LinearLayout>

এবং আপনার ক্রিয়াকলাপে (জাভা) আমি আমার তালিকাগুলির জন্য ডেটা আনতে একটি অ্যাসিঙ্কটাস্ক ব্যবহার করি। এসি, এসিঙ্কটাস্কে onPreExecute()আমি এরকম কিছু ব্যবহার করি:

// CAST THE LINEARLAYOUT HOLDING THE MAIN PROGRESS (SPINNER)
LinearLayout linlaHeaderProgress = (LinearLayout) findViewById(R.id.linlaHeaderProgress);

@Override
protected void onPreExecute() {    
    // SHOW THE SPINNER WHILE LOADING FEEDS
    linlaHeaderProgress.setVisibility(View.VISIBLE);
}

এবং এর মধ্যে onPostExecute(), অ্যাডাপ্টারটি সেট করার পরে ListView:

@Override
protected void onPostExecute(Void result) {     
    // SET THE ADAPTER TO THE LISTVIEW
    lv.setAdapter(adapter);

    // CHANGE THE LOADINGMORE STATUS TO PERMIT FETCHING MORE DATA
    loadingMore = false;

    // HIDE THE SPINNER AFTER LOADING FEEDS
    linlaHeaderProgress.setVisibility(View.GONE);
}

সম্পাদনা করুন: বেশ কয়েকটির মধ্যে একটি লোড করার সময় এটি আমার অ্যাপে কেমন দেখাচ্ছে looks ListViews

এখানে চিত্র বর্ণনা লিখুন


1
আমার আবেদনে আমার কোনও অ্যাকশনবার নেই। আমি পর্দার কেন্দ্রে proressbar বৃত্ত প্রদর্শন করতে চান।
অনি

@ অণি: উত্তরে এটি ইতিমধ্যে আছে। বিন্যাসে ব্যবহারের জন্য কোড উদাহরণ ব্যবহার করুন। এটিতে আপনার এক্সএমএলের কোডও রয়েছে।
সিদ্ধার্থ লেলে

1
@ শাজিলআফজাল: হ্যাঁ। এটি একটি স্টাইল। আপনি এটি কোনও আইসিএস এপিআই থেকে এসডিকে পাবেন। এই এক্সএমএল অনুসন্ধান করুন: progress_medium_holo.xmlএবং তাদের নিজ নিজ আঁকাযোগ্য ফোল্ডারগুলিতে প্রাসঙ্গিক চিত্রগুলি অনুলিপি করুন।
সিদ্ধার্থ লেলে

1
@ অ্যাডি প্রগ্রেসবার নোডে কেবল স্টাইল = "? অ্যান্ড্রয়েড: অ্যাটার / প্রগ্রেসবার্স স্টাইললার্জ" ব্যবহার করুন
পল গ্রেগোয়ার

4
আপনি দয়া করে বলতে পারেন এর সংজ্ঞা কি @style/Spinner?
পঙ্কজ

36

আপনি এটি আরও সহজ করতে পারেন।
উত্স: http://www.tutorialspoint.com/android/android_loading_spinner.htm
এটি আমাকে সহায়তা করেছে।

লেআউট:

<ProgressBar
   android:id="@+id/progressBar1"
   style="?android:attr/progressBarStyleLarge"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_centerHorizontal="true" />

এটি এক্সএমএলে সংজ্ঞায়িত করার পরে, আপনাকে প্রগতিবার ক্লাসের মাধ্যমে জাভা ফাইলে এর রেফারেন্স পেতে হবে। এর বাক্য গঠন নীচে দেওয়া হল:

private ProgressBar spinner;
spinner = (ProgressBar)findViewById(R.id.progressBar1);

এর পরে আপনি এটি অদৃশ্য হয়ে যেতে পারবেন এবং সেটভিজিবিলিটি মেথডের মাধ্যমে যখন প্রয়োজন হবে তখন এটি ফিরিয়ে আনতে পারবেন। এর বাক্য গঠন নীচে দেওয়া হল:

spinner.setVisibility(View.GONE);
spinner.setVisibility(View.VISIBLE);

যদিও এটি সত্যই প্রশ্নের সেরা উত্তর না হলেও এটি আমার সমস্যা সমাধানে আমাকে সহায়তা করেছে। ধন্যবাদ.
মাচাডো

19

আমি এটি তালিকা তালিকার জন্য ব্যবহার করেছি লোডিং সহায়ক হতে পারে।

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="5dp"
android:paddingRight="5dp" >

<LinearLayout
    android:id="@+id/progressbar_view"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="horizontal" >

        <ProgressBar
            style="?android:attr/progressBarStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|center_horizontal" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|center_horizontal"
            android:text="Loading data..." />
    </LinearLayout>

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="#C0C0C0" />
</LinearLayout>

<ListView
    android:id="@+id/listView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginTop="1dip"
    android:visibility="gone" />

</RelativeLayout>

এবং আমার মেইনএকটিভিটি ক্লাসটি হ'ল,

public class MainActivity extends Activity {
ListView listView;
LinearLayout layout;
List<String> stringValues;
ArrayAdapter<String> adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    listView = (ListView) findViewById(R.id.listView);
    layout = (LinearLayout) findViewById(R.id.progressbar_view);

    stringValues = new ArrayList<String>();

    adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, stringValues);

    listView.setAdapter(adapter);
    new Task().execute();
}

class Task extends AsyncTask<String, Integer, Boolean> {
    @Override
    protected void onPreExecute() {
        layout.setVisibility(View.VISIBLE);
        listView.setVisibility(View.GONE);
        super.onPreExecute();
    }

    @Override
    protected void onPostExecute(Boolean result) {
        layout.setVisibility(View.GONE);
        listView.setVisibility(View.VISIBLE);
        adapter.notifyDataSetChanged();
        super.onPostExecute(result);
    }

    @Override
    protected Boolean doInBackground(String... params) {
        stringValues.add("String 1");
        stringValues.add("String 2");
        stringValues.add("String 3");
        stringValues.add("String 4");
        stringValues.add("String 5");

        try {
            Thread.sleep(3000);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
}

এই ক্রিয়াকলাপটি 3 সিসির জন্য অগ্রগতি প্রদর্শন করে তবে এটি স্ট্রিংভ্যালু তালিকায় স্থিতিশীলভাবে ডেটা যুক্ত করার পরিবর্তে ডুইনব্যাকগ্রাউন্ডে সার্ভার থেকে ডেটা পেতে এবং এটি প্রদর্শন করতে তালিকার দর্শন প্রদর্শন করবে।


3
কেবলমাত্র সম্পূর্ণতার জন্য: অ্যান্ড্রয়েড ডক্স বর্তমানে উল্লেখ করছে যে এটি অগ্রগতি বারের নীচে পাঠ্য ব্যবহার করতে উত্সাহিত নয়। বিকাশকারী.অ্যান্ড্রয়েড.
com/

9

টিউটোরিয়ালপয়েন্ট.কম এ নমুনাটি ব্যবহার করুন । সম্পূর্ণ বাস্তবায়নের জন্য আপনার এক্সএমএল ফাইলটি পরিবর্তন না করে কেবল কয়েকটি লাইনের কোডের প্রয়োজন। আশাকরি এটা সাহায্য করবে.

পদক্ষেপ 1: পাঠাগার আমদানি করুন

import android.app.ProgressDialog;

পদক্ষেপ 2: অগ্রগতি ডায়ালগ গ্লোবাল পরিবর্তনশীল

ProgressDialog loading = null;

পদক্ষেপ 3: নতুন অগ্রগতি ডায়ালগ শুরু করুন এবং নিম্নলিখিত বৈশিষ্ট্যগুলি ব্যবহার করুন (দয়া করে অবগত হোন যে এই নমুনাটি রিয়েল টাইম অগ্রগতির স্থিতি ছাড়াই কেবলমাত্র মৌলিক বৃত্ত লোডিং বারটি কভার করে)।

loading = new ProgressDialog(v.getContext());
loading.setCancelable(true);
loading.setMessage(Constant.Message.AuthenticatingUser);
loading.setProgressStyle(ProgressDialog.STYLE_SPINNER);

পদক্ষেপ 4: আপনি যদি অ্যাসিঙ্কটাস্ক ব্যবহার করছেন তবে আপনি অনপ্রি এক্সেকিউট পদ্ধতিতে ডায়ালগটি দেখাতে শুরু করতে পারেন। অন্যথায়, ক্লিক ক্লিক করুন ইভেন্ট ক্লিক করুন আপনার বোতামের শুরুতে।

loading.show();

পদক্ষেপ 5: আপনি যদি অ্যাসিঙ্কটাস্ক ব্যবহার করছেন, আপনি অনপস্টএক্সেকিউট পদ্ধতিতে কোডটি রেখে অগ্রগতি ডায়ালগটি বন্ধ করতে পারেন। অন্যথায়, ক্লিক ক্লিক ইভেন্টে আপনার বোতামটি বন্ধ করার আগে কোডটি রাখুন।

loading.dismiss();

এটি আমার নেক্সাস 5 অ্যান্ড্রয়েড ভি 4.0.3 দিয়ে পরীক্ষা করেছেন। শুভকামনা!



8

আপনি তালিকার ক্রম প্রসারিত করছেন?

যদি তা হয় তবে আপনার এক্সএমএলে নিম্নলিখিত লাইনের সাথে একটি বৃত্তাকার অগ্রগতি ডায়ালগ রাখুন

<ProgressBar
android:id="@android:id/empty"
...other stuff...
/>

এখন, আপনার সমস্ত তালিকার তথ্য না পাওয়া এবং অ্যাডাপ্টার সেট না করা পর্যন্ত অগ্রগতি সূচকটি প্রদর্শিত হবে। কোন মুহুর্তে, এটি তালিকায় ফিরে যাবে এবং অগ্রগতি বারটি চলে যাবে।


আমি পর্দার কেন্দ্রে proressbar চেনাশোনাটি প্রদর্শন করতে চাই Iআমি যদি প্রগতি বারটি যুক্ত করি তবে আমি XML- এ তালিকার দর্শনটি কোথায় রাখতে পারি।
অনি

স্বাভাবিকের মতো একটি বিন্যাস তৈরি করুন। আমি আমার অ্যাপগুলির একটিতে এই সঠিক জিনিসটি করেছি। যদি আমি মনে করি, আপনি তালিকাটি উচ্চতা এবং প্রস্থের সাথে একটি পূর্ণ স্ক্রিনের আপেক্ষিক বিন্যাসের ভিতরে রাখতে পারেন fill_parent। তারপরে সেই আপেক্ষিক_সামগ্রীর দ্বিতীয় সন্তান হিসাবে, অগ্রগতি সূচকটি অনুভূমিকভাবে এবং উলম্বভাবে উভয়কে কেন্দ্র করে রাখুন।
হলো দেব

আপনি কি এই জন্য এটি এক্সএমএল করতে পারেন?
আনি

1
তবে লোডের ফল খালি থাকলে কী হবে?
dkneller


1

<color name="silverGrey">#C0C0C0</color>আঁকতে সক্ষম কোনও এক্সএমএল ফাইল তৈরি করুন (প্রগতিবার.এক্সএমএল বলুন) এবং color.xML এ যুক্ত করুন।

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toDegrees="720" >

    <shape
        android:innerRadiusRatio="3"
        android:shape="ring"
        android:thicknessRatio="6"
        android:useLevel="false" >
        <size
            android:height="200dip"
            android:width="300dip" />

        <gradient
            android:angle="0"
            android:endColor="@color/silverGrey"
            android:startColor="@android:color/transparent"
            android:type="sweep"
            android:useLevel="false" />

    </shape>
</rotate>

এখন আপনার এক্সএমএল ফাইলে যেখানে আপনার তালিকা রয়েছে ভিউ এই কোডটি যুক্ত করুন:

 <ListView
            android:id="@+id/list_form_statusMain"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </ListView>

        <ProgressBar
            android:id="@+id/progressBar"
            style="@style/CustomAlertDialogStyle"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_centerInParent="true"
            android:layout_gravity="center_horizontal"
            android:indeterminate="true"
            android:indeterminateDrawable="@drawable/circularprogress"
            android:visibility="gone"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"/>

পদ্ধতিতে অ্যাসিঙ্কটাস্কে:

@Override
protected void onPreExecute()
{
    progressbar_view.setVisibility(View.VISIBLE);

    // your code
}

এবং onPostExecute এ:

@Override
protected void onPostExecute(String s)
{
    progressbar_view.setVisibility(View.GONE);

    //your code
}

0

আপনি তালিকার ProgressBarফুটারে যোগ করতে পারেন :

private ListView listview;
private ProgressBar progressBar;

...

progressBar = (ProgressBar) LayoutInflater.from(this).inflate(R.layout.progress_bar, null);

listview.addFooterView(progressBar);

বিন্যাস / progress_bar.xml

<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/load_progress"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:indeterminate="true"
     />

যখন ডেটা অ্যাডাপ্টার ভিউ কলটিতে লোড হয়:

        listview.removeFooterView(progressBar);

0

সোয়াইপ রিফ্রেশলয়আউটটি ব্যবহার করতে তালিকাগুলি বা পুনর্ব্যবহারযোগ্য দর্শন নিয়ে কাজ করার সময় আমি আপনাকে পরামর্শ দিই । এটার মত

    <android.support.v4.widget.SwipeRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swiperefresh"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/card_recycler_view"
            android:scrollbars="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

</android.support.v4.widget.SwipeRefreshLayout>

কেবলমাত্র আপনার দর্শনটি মোড়ানো করুন এবং এটি ডেটা লোড করার সময় বা স্ক্রিনটি স্যুইপ করে রিফ্রেশের একটি অ্যানিমেশন তৈরি করবে যেমন আমরা অনেকগুলি অ্যাপ্লিকেশনে করতে পারি।
এটি কীভাবে ব্যবহার করবেন তার ডকুমেন্টেশন এখানে রয়েছে:
https://developer.android.com/training/swipe/add-swipe-interface.html https://developer.android.com/training/swipe/mitted-refresh-request। এইচটিএমএল

শুভ কোডিং!


0

ক্লিক বিকল্প বা আপনার প্রয়োজনে এই অভ্যন্তরীণ বোতামটি ব্যবহার করুন:

final ProgressDialog progressDialog;
progressDialog = new ProgressDialog(getApplicationContext());
progressDialog.setMessage("Loading..."); // Setting Message
progressDialog.setTitle("ProgressDialog"); // Setting Title
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); // Progress Dialog Style Spinner
progressDialog.show(); // Display Progress Dialog
progressDialog.setCancelable(false);
new Thread(new Runnable() {
    public void run() {
        try {
            Thread.sleep(5000);
        } catch (Exception e) {
            e.printStackTrace();
        }
        progressDialog.dismiss();
    }
}).start();

-1

প্রক্রিয়া বার:

নির্ভরতা:

     implementation 'com.github.castorflex.smoothprogressbar:library:1.0.0'

এক্সএমএল:

     <fr.castorflex.android.smoothprogressbar.SmoothProgressBar
        xmlns:android="http://schemas.android.com/apk/res/android"                
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/myProcessbar"
        android:layout_width="match_parent"
        android:layout_height="10dp"
        android:indeterminate="true" />

রেজ-> রঙে

      <color name="pocket_color_1">#ff1635</color>
      <integer-array name="pocket_background_colors">
          <item>@color/pocket_color_1</item>
      </integer-array>

      <color name="pocket_color_stop">#00ff00</color>
      <integer-array name="pocket_background_stop">
          <item>@color/pocket_color_stop</item>
      </integer-array>

প্রধান:

      public class MainActivity extends AppCompatActivity{
        SmoothProgressBar smoothProgressBar;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          smoothProgressBar=findViewById(R.id.myProcessbar);
          showProcessBar();
          stopAnimation();    // call when required to stop process
        }

        public void showProcessBar(){
          smoothProgressBar.setVisibility(View.VISIBLE);
          smoothProgressBar.setIndeterminateDrawable(new SmoothProgressDrawable.Builder(getApplicationContext())
            .interpolator(new AccelerateInterpolator())
            .progressiveStart(true)
            .progressiveStopSpeed(1000)
            .build());
          smoothProgressBar.setSmoothProgressDrawableBackgroundDrawable(
          SmoothProgressBarUtils.generateDrawableWithColors(
                    getResources().getIntArray(R.array.pocket_background_colors),
                    ((SmoothProgressDrawable)  smoothProgressBar.getIndeterminateDrawable()).getStrokeWidth()));
        }

        public void stopAnimation(){
          smoothProgressBar.setSmoothProgressDrawableBackgroundDrawable(
          SmoothProgressBarUtils.generateDrawableWithColors(
                    getResources().getIntArray(R.array.pocket_background_stop),
                    ((SmoothProgressDrawable)  smoothProgressBar.getIndeterminateDrawable()).getStrokeWidth()));
          smoothProgressBar.progressiveStop();
          Handler handler=new Handler();
          handler.postDelayed(new Runnable() {
            @Override
            public void run() {
               smoothProgressBar.animate().alpha(0.0f).setDuration(6000).translationY(1000);
               smoothProgressBar.setVisibility(View.GONE);
            }
          },1000);
}

      }

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.