سؤال

ما هي الطريقة الصحيحة لتمرير حزمة إلى النشاط الذي يتم إطلاقه من واحد الحالي؟ خصائص مشتركة؟

هل كانت مفيدة؟

المحلول

لديك بعض الخيارات:

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) استخدام putextra () طريقة الاختصار من النية

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


ثم، في النشاط المطلق، ستقرأها عبر:

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

ملاحظة: حزم "احصل على" و "وضعت" لجميع أنواع البدائية والعرفات والأسلحة. لقد استخدمت فقط سلاسل لأغراض توضيحية.

نصائح أخرى

يمكنك استخدام الحزمة من النية:

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

أو حزمة كاملة:

myIntent.putExtras(myBundle);

هل هذا ما تبحث عنه؟

تمرير البيانات من نشاط واحد إلى النشاط في Android

نية تحتوي على الإجراء وبيانات إضافية اختياريا. يمكن تمرير البيانات إلى نشاط آخر باستخدام النية putExtra() طريقة. يتم تمرير البيانات كإضافات و key/value pairs. وبعد المفتاح هو دائما سلسلة. كقيمة يمكنك استخدام أنواع البيانات البدائية INT، تعويم، حرف، إلخ. يمكننا أيضا تمرير Parceable and Serializable كائنات من نشاط واحد إلى آخر.

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

استرجاع حزمة البيانات من نشاط Android

يمكنك استرداد المعلومات باستخدام 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); 
  }

يمكنك تمرير القيم من نشاط واحد إلى نشاط آخر باستخدام الحزمة. في نشاطك الحالي، قم بإنشاء حزمة وتعيين الحزمة للحصول على القيمة الخاصة وتمرير تلك الحزمة إلى النية.

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

الآن في NewActivity الخاص بك، يمكنك الحصول على هذه الحزمة واسترداد قيمتك.

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);

اكتب هذا هو النشاط الذي تكون فيه:

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

في extactivity.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-activity-tivity-

يمكنك استخدام هذا الرمز في النشاط الأول :

 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"); 
    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top