স্টার্টঅ্যাক্টিভিটি () এ একটি বান্ডিল পাস করছেন?


174

বর্তমানটি থেকে চালু হওয়া ক্রিয়াকলাপে একটি বান্ডিল পাস করার সঠিক উপায় কী? ভাগ করা সম্পত্তি?

উত্তর:


425

আপনার স্বল্প কিছু সু্যোগ আছে:

1) উদ্দিষ্ট থেকে বান্ডিলটি ব্যবহার করুন :

Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);  

2) একটি নতুন বান্ডিল তৈরি করুন

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);

3) উদ্দিষ্টের পুটেক্সট্রা () শর্টকাট পদ্ধতিটি ব্যবহার করুন

Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);


তারপরে, চালু করা ক্রিয়াকলাপে আপনি সেগুলি এর মাধ্যমে পড়তে পারেন:

String value = getIntent().getExtras().getString(key)

দ্রষ্টব্য: বান্ডিলগুলিতে সমস্ত আদিম প্রকার, পার্সেবল এবং সিরিয়ালাইজেবলগুলির জন্য "পান" এবং "পুট" পদ্ধতি রয়েছে। আমি কেবল স্ট্রিংগুলি বিক্ষোভমূলক উদ্দেশ্যে ব্যবহার করেছি।


20

আপনি উদ্দিষ্ট থেকে বান্ডিলটি ব্যবহার করতে পারেন:

Bundle extras = myIntent.getExtras();
extras.put*(info);

বা একটি সম্পূর্ণ বান্ডিল:

myIntent.putExtras(myBundle);

এটি কি আপনি খুঁজছেন?


1
এবং ফলস্বরূপ অভিপ্রায় থেকে আপনি getIntent ()। GetExtras ()। * পেতে * () যা আগে সংরক্ষণ করা হয়েছে তা কল করুন।
yanchenko

16

অ্যান্ড্রয়েডের একটি ক্রিয়াকলাপ থেকে ক্রিয়াকলাপে ডেটা পাস করা

একটি অভিপ্রায় ক্রিয়া এবং বিকল্পভাবে অতিরিক্ত ডেটা থাকে। অভিপ্রায় putExtra()পদ্ধতি ব্যবহার করে ডেটা অন্যান্য ক্রিয়াকলাপে প্রেরণ করা যায় । ডেটা অতিরিক্ত হিসাবে পাস এবং হয় key/value pairs। কীটি সর্বদা একটি স্ট্রিং থাকে। মান হিসাবে আপনি আদিম ডেটা টাইপ ইন্ট, ফ্লোট, চর ইত্যাদি ব্যবহার করতে পারেন আমরা Parceable and Serializableকোনও ক্রিয়াকলাপ থেকে অন্য ক্রিয়াকলাপগুলিতেও বস্তুগুলি পাস করতে পারি ।

Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);

অ্যান্ড্রয়েড ক্রিয়াকলাপ থেকে বান্ডিল ডেটা পুনরুদ্ধার করা

getData()ইন্টেন্ট অবজেক্টে পদ্ধতি ব্যবহার করে আপনি তথ্যটি পুনরুদ্ধার করতে পারেন । ইন্টেন্ট বস্তুর মাধ্যমে পুনরায় উদ্ধার করা যাবে getIntent()পদ্ধতি।

 Intent intent = getIntent();
  if (null != intent) { //Null Checking
    String StrData= intent.getStringExtra(KEY);
    int NoOfData = intent.getIntExtra(KEY, defaultValue);
    boolean booleanData = intent.getBooleanExtra(KEY, defaultValue);
    char charData = intent.getCharExtra(KEY, defaultValue); 
  }

6

আপনি বান্ডেলটি ব্যবহার করে একটি ক্রিয়াকলাপ থেকে অন্য ক্রিয়াকলাপে মানগুলি পাস করতে পারেন। আপনার বর্তমান ক্রিয়াকলাপে, একটি বান্ডিল তৈরি করুন এবং নির্দিষ্ট মানটির জন্য বান্ডিলটি সেট করুন এবং সেই বান্ডিলটি উদ্দেশ্যকে দিন।

Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);

এখন আপনার নতুন কার্যকলাপে, আপনি এই বান্ডিলটি পেতে এবং আপনার মানটি পুনরুদ্ধার করতে পারেন।

Bundle bundle = getArguments();
String value = bundle.getString(key);

আপনি উদ্দেশ্যটি দিয়ে ডেটাও পাস করতে পারেন। আপনার বর্তমান ক্রিয়াকলাপে, এই জাতীয় উদ্দেশ্য সেট করুন,

Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);

এখন আপনার নতুন ক্রিয়াকলাপে, আপনি এই জাতীয় উদ্দেশ্যটি থেকে এটি পেতে পারেন,

String value = getIntent().getExtras().getString(key);

ইন্টেন্ট অবজেক্টে getExtra এবং putExtra পদ্ধতি থাকা অবস্থায় কেন একটি বান্ডেল ব্যবহার করছেন?
সাইকোসিস 404

0

এটি আপনি যে কার্যকলাপে রয়েছেন তা লিখুন:

Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtras("string_name","string_to_pass");
startActivity(intent);

NextActivity.java তে

Intent getIntent = getIntent();
//call a TextView object to set the string to
TextView text = (TextView)findViewById(R.id.textview_id);
text.setText(getIntent.getStringExtra("string_name"));

এটি আমার পক্ষে কাজ করে, আপনি এটি চেষ্টা করতে পারেন।

উত্স: https://www.c-sharpcorner.com/article/how-to-send-the-data-one-activity-to-another-activity-in-android-application/


0

আপনি আপনার প্রথম ক্রিয়াকলাপে এই কোডটি ব্যবহার করতে পারেন :

 Intent i = new Intent(Context, your second activity.class);
        i.putExtra("key_value", "your object");
        startActivity(i);

এবং দ্বিতীয় ক্রিয়াকলাপে অবজেক্ট পান :

 Intent in = getIntent();
    Bundle content = in.getExtras();
   // check null
        if (content != null) {
            String content = content_search.getString("key_value"); 
    }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.