অ্যাপ্লিকেশনটি সার্ভারের কাছ থেকে সাড়া পাওয়ার অপেক্ষায় থাকা অবস্থায় কোনও লোডিং স্পিনার দেখানোর সর্বোত্তম উপায় কী?
এটি কি প্রোগ্রামগতভাবে করা যায়? যাতে আমাকে এক্সএমএল ফাইলটিতে লোড স্পিনার যোগ করতে হবে না?
অ্যাপ্লিকেশনটি সার্ভারের কাছ থেকে সাড়া পাওয়ার অপেক্ষায় থাকা অবস্থায় কোনও লোডিং স্পিনার দেখানোর সর্বোত্তম উপায় কী?
এটি কি প্রোগ্রামগতভাবে করা যায়? যাতে আমাকে এক্সএমএল ফাইলটিতে লোড স্পিনার যোগ করতে হবে না?
উত্তর:
প্রগ্রেসডায়ালগ অ্যান্ড্রয়েড ওরিও থেকে প্রত্যাখ্যান করা হয়। ব্যবহারের ProgressBar পরিবর্তে
ProgressDialog progress = new ProgressDialog(this);
progress.setTitle("Loading");
progress.setMessage("Wait while loading...");
progress.setCancelable(false); // disable dismiss by tapping outside of the dialog
progress.show();
// To dismiss the dialog
progress.dismiss();
অথবা
ProgressDialog.show(this, "Loading", "Wait while loading...");
যাইহোক, অ্যান্ড্রয়েডে স্পিনারের আলাদা অর্থ রয়েছে। (এটি HTML এ সিলেক্ট ড্রপডাউন এর মতো)
progress.setCancelable(false);
।
ProgressDialog
অ্যান্ড্রয়েড ও ডেভেলপার.অ্যান্ড্রয়েড
প্রগ্রেসডায়ালগ এপিআই স্তরের ২ htt https://developer.android.com/references/android/app/ProgressDialog.html থেকে অবহেলিত হয়েছে
আমি আমার লেআউটে একটি প্রগতিবার অন্তর্ভুক্ত করেছি
<ProgressBar
android:layout_weight="1"
android:id="@+id/progressBar_cyclic"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="40dp"
android:minWidth="40dp" />
এবং এর দৃশ্যমানতা .GONE | এ পরিবর্তন করুন .ভিত্তিক ব্যবহারের ক্ষেত্রে নির্ভর করে।
progressBar_cyclic.visibility = View.VISIBLE
ব্যবহার ProgressDialog
ProgressDialog.show(Context context, CharSequence title, CharSequence message);
তবে এটি আজ একটি বিরোধী নিদর্শন হিসাবে বিবেচিত হয় (2013): http://www.youtube.com/watch?v=pEGWcMTxs3I
ProgressDialog
অ্যান্ড্রয়েড ও ডেভেলপার.অ্যান্ড্রয়েড
আসলে আপনি যদি কোনও সার্ভারের প্রতিক্রিয়াটির অপেক্ষায় থাকেন তবে এটি প্রোগ্রামক্রমে করা উচিত । আপনি একটি অগ্রগতি ডায়ালগ তৈরি করতে পারেন এবং এটিকে বরখাস্ত করতে পারেন, তবে তারপরে আবার এটি "অ্যান্ড্রয়েডের উপায়" নয়।
বর্তমানে প্রস্তাবিত পদ্ধতিটি হ'ল ডায়ালগফ্রেগমেন্ট ব্যবহার করা :
public class MySpinnerDialog extends DialogFragment {
public MySpinnerDialog() {
// use empty constructors. If something is needed use onCreate's
}
@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
_dialog = new ProgressDialog(getActivity());
this.setStyle(STYLE_NO_TITLE, getTheme()); // You can use styles or inflate a view
_dialog.setMessage("Spinning.."); // set your messages if not inflated from XML
_dialog.setCancelable(false);
return _dialog;
}
}
তারপর আপনার কার্যকলাপের আপনি আপনার অসম্পূর্ণ অংশ ম্যানেজার সেট এবং দেন একবার সার্ভার শুরু জন্য অপেক্ষা ডায়ালগ:
FragmentManager fm = getSupportFragmentManager();
MySpinnerDialog myInstance = new MySpinnerDialog();
}
myInstance.show(fm, "some_tag");
একবার আপনার সার্ভার সম্পূর্ণ প্রতিক্রিয়া জানালে আপনি এটিকে বরখাস্ত করবেন:
myInstance.dismiss()
মনে রাখবেন যে প্রগতি ডায়ালগ হ'ল স্পিনার বা বৈশিষ্ট্যগুলির উপর নির্ভর করে একটি প্রগতিবার, এপিআই গাইডটিতে আরও পড়ুন
ProgressDialog
অ্যান্ড্রয়েড ও ডেভেলপার.অ্যান্ড্রয়েড
আমি এটি এইভাবে করেছিলাম যাতে একবারে কেবলমাত্র একটি অগ্রগতি ডায়ালগ খোলা যায়। সুরজ বাজাজের উত্তর অফ করা হয়েছে
private ProgressDialog progress;
public void showLoadingDialog() {
if (progress == null) {
progress = new ProgressDialog(this);
progress.setTitle(getString(R.string.loading_title));
progress.setMessage(getString(R.string.loading_message));
}
progress.show();
}
public void dismissLoadingDialog() {
if (progress != null && progress.isShowing()) {
progress.dismiss();
}
}
আমারও ব্যবহার করতে হয়েছিল
protected void onResume() {
dismissLoadingDialog();
super.onResume();
}
ProgressDialog
অ্যান্ড্রয়েড ও ডেভেলপার.অ্যান্ড্রয়েড