আমি অ্যান্ড্রয়েড অ্যাপে সহজ কিছু করতে চাই। পূর্বের ক্রিয়াকলাপে ফিরে যাওয়া কীভাবে সম্ভব।
পূর্ববর্তী ক্রিয়াকলাপে ফিরে যাওয়ার জন্য আমার কী কোড দরকার
আমি অ্যান্ড্রয়েড অ্যাপে সহজ কিছু করতে চাই। পূর্বের ক্রিয়াকলাপে ফিরে যাওয়া কীভাবে সম্ভব।
পূর্ববর্তী ক্রিয়াকলাপে ফিরে যাওয়ার জন্য আমার কী কোড দরকার
উত্তর:
অ্যান্ড্রয়েড ক্রিয়াকলাপগুলি ক্রিয়াকলাপের স্ট্যাকে সঞ্চিত। পূর্ববর্তী ক্রিয়াকলাপে ফিরে যাওয়ার অর্থ দুটি জিনিস হতে পারে।
আপনি স্টার্টঅ্যাক্টিভিটি ফর রিসাল্ট সহ অন্য ক্রিয়াকলাপ থেকে নতুন ক্রিয়াকলাপটি খুললেন । সেক্ষেত্রে আপনি আপনার কোড থেকে ফিনিশিং অ্যাকটিভিটি () ফাংশনটি কল করতে পারেন এবং এটি আপনাকে আগের ক্রিয়াকলাপে ফিরিয়ে নিয়ে যাবে।
ক্রিয়াকলাপের স্ট্যাকের উপর নজর রাখুন। যখনই আপনি কোনও অভিপ্রায় নিয়ে একটি নতুন ক্রিয়াকলাপ শুরু করেন আপনি FLAG_ACTIVITY_REORDER_TO_FRONT
বা এর মতো কোনও অভিপ্রায়ের পতাকা নির্দিষ্ট করতে পারেন FLAG_ACTIVITY_PREVIOUS_IS_TOP
। আপনি আপনার প্রয়োগের ক্রিয়াকলাপগুলির মধ্যে এলোমেলো করতে এটি ব্যবহার করতে পারেন। যদিও সেগুলি বেশি ব্যবহার করেন নি। এখানে পতাকাগুলি দেখুন: http://developer.android.com/references/android/content/Inttent.html
মন্তব্যে উল্লিখিত হিসাবে, যদি ক্রিয়াকলাপটি খোলা হয় startActivity()
তবে কেউ এটি দিয়ে এটি বন্ধ করতে পারে finish()
। আপনি যদি আপ বোতামটি ব্যবহার করতে চান তবে মন্তব্যে উল্লিখিত মতবিরোধের তুলনায় onOptionsSelected(MenuItem item)
আইটেম আইডি পরীক্ষা করে পদ্ধতিতে আপনি এটি ধরতে পারেন ।android.R.id.home
R.id.home
ব্যবহার করে দেখুন Activity#finish()
। এটি ডিফল্টরূপে ব্যাক বোতামটি কমবেশি করে।
this.finish();
#
এমন একটি সূচক যা finish()
ক্রিয়াকলাপ শ্রেণীর একটি অ স্থির পদ্ধতি। এটি বৈধ জাভা নয়, তবে এটি কীভাবে পদ্ধতিটি ব্যবহার করতে পারে তা ব্যাখ্যা করতে সহায়তা করে।
.
, অর্থাত:Activity.someStaticMethod()
শুধু ক্লিক ফিনিস () এ লিখুন । এটি আপনাকে পূর্ববর্তী ক্রিয়াকলাপে নিয়ে যাবে।
শুধু এটা
super.onBackPressed();
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
এটি আপনাকে পূর্ববর্তী ক্রিয়াকলাপে স্ট্যাকটি রেখে এবং স্ট্যাক থেকে সমস্ত ক্রিয়াকলাপ সাফ করে দেবে।
উদাহরণস্বরূপ, যদি স্ট্যাকটি A-> বি-> সি-> ডি হয় এবং আপনি এই পতাকাটি দিয়ে বি শুরু করেন তবে স্ট্যাকটি এ-> বি হবে
আপনি কি পিছনের বোতামের আচরণটি নিয়ন্ত্রণ করতে চান? আপনি দুটি পদ্ধতির একটির মাধ্যমে পিছনের বোতামটি (একটি নির্দিষ্ট ক্রিয়াকলাপে যাওয়ার জন্য) ওভাররাইড করতে পারেন।
অ্যান্ড্রয়েড 1.6 এবং নীচের জন্য:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
return true;
}
return super.onKeyDown(keyCode, event);
}
বা যদি আপনি কেবল অ্যান্ড্রয়েড 2.0 বা আরও বেশি সমর্থন করে থাকেন:
@Override
public void onBackPressed() {
// do something on back.
return;
}
বিস্তারিত জানতে দেখুন: http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html
কেবলমাত্র বর্তমান ক্রিয়াকলাপ শেষ করতে বা অনব্যাকপ্রেসড দিয়ে ফিরে যেতে এই পদ্ধতিটি কল করুন
finish();
অথবা
onBackPressed();
আপনি যদি যেতে চান তবে কেবল পূর্ববর্তী ক্রিয়াকলাপ ব্যবহারে যেতে চান
finish();
অথবা
onBackPressed();
যদি আপনি দ্বিতীয় ক্রিয়াকলাপে যেতে চান বা নীচের নীচে ব্যবহার করতে চান:
intent = new Intent(MyFourthActivity.this , MySecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//Bundle is optional
Bundle bundle = new Bundle();
bundle.putString("MyValue1", val1);
intent.putExtras(bundle);
//end Bundle
startActivity(intent);
এটি আপনার অনিক্লিক () পদ্ধতিতে যুক্ত করুন, এটি আপনার আগের ক্রিয়াকলাপে ফিরে যাবে
শেষ ();
অথবা আপনি এটি ব্যবহার করতে পারেন। এটা আমার জন্য পুরোপুরি কাজ করেন
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if ( id == android.R.id.home ) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
আপনার যদি ক্রিয়াকলাপের প্যারেন্টের সাথে অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল ফাইলটি সঠিকভাবে সেটআপ করা থাকে তবে আপনি ব্যবহার করতে পারেন:
NavUtils.navigateUpFromSameTask(this);
এটি আপনার সন্তানের ক্রিয়াকলাপ।
আপনি ফিরে বোতাম টিপতে হবে হিসাবে এটি কাজ হিসাবে চেষ্টা করুন
finish();
onBackPressed();
আপনি স্পষ্টভাবে কল করতে পারেন onBackPressed
সবচেয়ে সহজ
উপায়টি দেখুন বিশদের জন্য পূর্ববর্তী কার্যকলাপে ফিরে যান back
অভিপ্রায় ব্যবহার করে দ্বিতীয় ক্রিয়াকলাপ শুরু করুন (হয় ব্যবহার করুন startActivity
বা startActivityForResult
আপনার প্রয়োজনীয়তা অনুসারে)। এখন যখন ব্যবহারকারী পিছনে বোতাম টিপুন, উপরের বর্তমান ক্রিয়াকলাপটি বন্ধ হয়ে যাবে এবং পূর্ববর্তীটি প্রদর্শিত হবে।
এখন বলুন আপনার দুটি ক্রিয়াকলাপ রয়েছে, একটি ব্যবহারকারীর জন্য কিছু সেটিংস বাছাই করার জন্য ভাষা, দেশ ইত্যাদি and এখন যদি লগইন ব্যর্থ হয়, তবে ব্যবহারকারী লগইন ক্রিয়াকলাপে থাকবে, লগইন সফল হলে কী হবে?
যদি লগইন সফল হয়, তবে আপনাকে অন্য ক্রিয়াকলাপ শুরু করতে হবে। এর অর্থ একটি তৃতীয় ক্রিয়াকলাপ শুরু হবে এবং এখনও দুটি ক্রিয়াকলাপ চলছে। এই ক্ষেত্রে, এটি ব্যবহার করা ভাল হবে startActivityForResult
। লগইন সফল হলে প্রথম ক্রিয়াকলাপে ফিরে ওকে ডেটা প্রেরণ করুন এবং লগইন ক্রিয়াকলাপটি বন্ধ করুন। এখন যখন ডেটা প্রাপ্ত হবে, তখন তৃতীয় ক্রিয়াকলাপটি শুরু করুন এবং ফিনিসটি ব্যবহার করে প্রথম ক্রিয়াকলাপটি বন্ধ করুন।
আপনার আগের ক্রিয়াকলাপে ফিরে যাওয়ার জন্য কয়েকটি মামলা রয়েছে:
কেস 1: আপনি যদি নিজের আগের ক্রিয়াকলাপে ফলাফল নিতে চান তবে ActivityA.java
Intent intent = new Intent(ActivityA.this, FBHelperActivity.class);
startActivityForResult(intent,2);
FBHelperActivity.java
Intent returnIntent = new Intent();
setResult(RESULT_OK, returnIntent);
finish();
কেস 2: ক্রিয়াকলাপ - - এফবিহেলপারঅ্যাক্টিভিটি ----> ক্রিয়াকলাপএ
ActivityA.java
Intent intent = new Intent(ActivityA.this, FBHelperActivity.class);
startActivity(intent);
FBHelperActivity.java
after getting of result call finish();
By this way your second activity will finish and because
you did not call finish() in your first activity then
automatic first activity is in back ground, will visible.
এর পরে আপনার বর্তমান ক্রিয়াকলাপ থেকে পূর্বের ক্রিয়াকলাপে ফিরে যাওয়ার দুটি উপায় রয়েছে:
কেবল কল করুন: finish()
বোতামের নীচে ক্লিক শ্রোতাদের, বা সিস্টেম ব্যাক বোতামটি ব্যবহার করে ব্যাক করতে নিম্নলিখিত পদ্ধতিটি ওভাররাইড করুন:
@Override
public void onBackPressed() {
super.onBackPressed();
}
উল্লিখিত সমস্ত উত্তর ছাড়াও এগুলি এখনও এটি করার একটি বিকল্প উপায় say
ক্লাস এ আপনি কিছু কার্যক্রম করেছেন যেমন চেকবক্স নির্বাচন করুন, কিছু তথ্য মুদ্রণ করেছেন এবং ক্লাস বি ক্লাসের উদ্দেশ্যে, আপনি ক্লাস এতে একাধিক মান পাস করতে চান এবং ক্লাস এ এর আগের অবস্থা বজায় রাখতে চান, আপনি এই বিকল্পটি ব্যবহার করে দেখতে পারেন এটি প্রদর্শনের জন্য পদ্ধতি বা ডাউনলোড উত্স কোড
অথবা
http://developer.android.com/reference/android/content/Intent.html