android - मैं एंड्रॉइड पर इरादे से अतिरिक्त डेटा कैसे प्राप्त करूं?




android-intent (9)

यह एडाप्टर के लिए है, गतिविधि के लिए आपको बस अपने सक्रियता नाम में एमसीएन्टेक्स्ट को बदलने की आवश्यकता है और खंड के लिए आपको एक्टिविटी () प्राप्त करने के लिए mContext को बदलने की आवश्यकता है

 public static ArrayList<String> tags_array ;// static array list if you want to pass array data

      public void sendDataBundle(){
            tags_array = new ArrayList();
            tags_array.add("hashtag");//few array data
            tags_array.add("selling");
            tags_array.add("cityname");
            tags_array.add("more");
            tags_array.add("mobile");
            tags_array.add("android");
            tags_array.add("dress");
            Intent su = new Intent(mContext, ViewItemActivity.class);
            Bundle bun1 = new Bundle();
            bun1.putString("product_title","My Product Titile");
            bun1.putString("product_description", "My Product Discription");
            bun1.putString("category", "Product Category");
            bun1.putStringArrayList("hashtag", tags_array);//to pass array list 
            su.putExtras(bun1);
            mContext.startActivity(su);
        }

मैं एक गतिविधि (इरादा) से डेटा को दूसरे में कैसे भेज सकता हूं?

मैं डेटा भेजने के लिए इस कोड का उपयोग करता हूं:

Intent i=new Intent(context,SendMessage.class);
i.putExtra("id", user.getUserAccountId()+"");
i.putExtra("name", user.getUserFullName());
context.startActivity(i);

इरादे से अतिरिक्त प्रकार के विभिन्न प्रकार प्राप्त करना

इरादे से डेटा तक पहुंचने के लिए आपको दो चीजें जाननी चाहिए।

  • कुंजी
  • आपके डेटा का डेटा टाइप।

विभिन्न प्रकार के डेटा प्रकार निकालने के लिए इरादे वर्ग में विभिन्न विधियां हैं। यह इस तरह दिख रहा है

getIntent ()। XXXX (कुंजी) या इरादा। XXX (कुंजी);


इसलिए यदि आप अपने वैरिबाले के डेटाटाइप को जानते हैं जिसे आपने अन्य एक्टिविटी में सेट किया है तो आप संबंधित विधि का उपयोग कर सकते हैं।

इरादे से अपनी गतिविधि में स्ट्रिंग को पुनर्प्राप्त करने के लिए उदाहरण

String profileName = getIntent().getStringExtra("SomeKey");

विभिन्न डेटा टाइप के लिए विधियों के विभिन्न रूपों की सूची

आप आधिकारिक दस्तावेज़ीकरण में उपलब्ध विधियों की सूची देख सकते हैं।


आप ऐसा भी कर सकते हैं
// इरादे में मूल्य डाल दें

    Intent in = new Intent(MainActivity.this, Booked.class);
    in.putExtra("filter", "Booked");
    startActivity(in);

// इरादे से मूल्य प्राप्त करें

    Intent intent = getIntent();
    Bundle bundle = intent.getExtras();
    String filter = bundle.getString("filter");

केवल एक सलाह:

अपने i.putExtra ("id" .....) में "id" या "name" का उपयोग करने के बजाय, मैं सुझाव दूंगा, जब यह समझ में आता है, वर्तमान मानक फ़ील्ड का उपयोग करके जिसे putExtra (), यानी Intent.EXTRA_something।

एक पूर्ण सूची Intent (एंड्रॉइड डेवलपर्स) पर पाई जा सकती है।


प्राप्त करने की गतिविधि में

Bundle extras = getIntent().getExtras(); 
String userName;

if (extras != null) {
    userName = extras.getString("name");
    // and get whatever type user account id is
}

मैंने अभी here एक उत्तर पोस्ट किया है जो कुछ विकल्पों सहित कुछ और विस्तार से इस विषय को शामिल करता है।

यह एंड्रॉइड देव को सरल बनाने के लिए लिखा गया एक नया jQuery प्रेरित एंड्रॉइड फ्रेमवर्क वापर एपीआई का उपयोग करता है। उस उत्तर में उदाहरण देखें कि आप सक्रियताओं के बीच डेटा को आसानी से कैसे पारित कर सकते हैं।

इसके अलावा यह VaporIntent प्रदर्शन VaporIntent , जो आपको चेन विधि कॉल करने देता है और ओवरलोडेड .put(...) विधि का उपयोग करता है:

$.Intent().put("data", "myData").put("more", 568)...

आप वापर एपीआई का उपयोग करके अपने पूरे एप्लिकेशन के आसपास आसानी से डेटा पास कर सकते हैं, इसलिए उम्मीद है कि ऐप डेवलपमेंट के दौरान यह आपके और दूसरों के लिए उपयोगी होगा।


यदि एक FragmentActivity में उपयोग किया जाता है, तो इसे आजमाएं:

पहला पृष्ठ FragmentActivity बढ़ाता है

Intent Tabdetail = new Intent(getApplicationContext(), ReceivePage.class);
Tabdetail.putExtra("Marker", marker.getTitle().toString());
startActivity(Tabdetail);

टुकड़े में, आपको केवल getActivity() को कॉल करने की आवश्यकता है,

दूसरा पृष्ठ टुकड़ा बढ़ाता है:

String receive = getActivity().getIntent().getExtras().getString("name");

सबसे पहले, इरादा प्राप्त करें जिसने getIntent() विधि का उपयोग करके अपनी गतिविधि शुरू की है:

Intent intent = getIntent();

यदि आपका अतिरिक्त डेटा तारों के रूप में दर्शाया गया है, तो आप intent.getStringExtra(String name) विधि का उपयोग कर सकते हैं। आपके मामले में:

String id = intent.getStringExtra("id");
String name = intent.getStringExtra("name");

//  How to send value using intent from one class to another class
//  class A(which will send data)
    Intent theIntent = new Intent(this, B.class);
    theIntent.putExtra("name", john);
    startActivity(theIntent);
//  How to get these values in another class
//  Class B
    Intent i= getIntent();
    i.getStringExtra("name");
//  if you log here i than you will get the value of i i.e. john





android-intent