android - এপস - মোবাইল অ্যাপ ডেভেলপমেন্ট




কিভাবে আমি অ্যান্ড্রয়েড অ্যাপ্লিকেশন ক্রিয়াকলাপের মধ্যে তথ্য পাস করব? (20)

লগইন পৃষ্ঠার মাধ্যমে লগ ইন করার পরে, আমার একটি দৃশ্যকল্প আছে, প্রতিটি activity একটি সাইন-আউট button থাকবে।

sign-out ক্লিক sign-out , আমি সাইন ইন করতে সাইন ইন থাকা ব্যবহারকারীর session id পাস করব। কিভাবে session id সব activities উপলব্ধ রাখা সম্পর্কে আমাকে গাইড করতে পারেন?

এই ক্ষেত্রে কোন বিকল্প


সম্পূরক উত্তর: কী স্ট্রিং জন্য নামকরণ কনভেনশন

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

উদাহরণ 1: Intent.EXTRA_* কী ব্যবহার করে

প্রথম কার্যকলাপ

Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(Intent.EXTRA_TEXT, "my text");
startActivity(intent);

দ্বিতীয় ক্রিয়াকলাপ:

Intent intent = getIntent();
String myText = intent.getExtras().getString(Intent.EXTRA_TEXT);

উদাহরণ 2: আপনার নিজস্ব static final কী সংজ্ঞায়িত

যদি Intent.EXTRA_* স্ট্রিংগুলি আপনার প্রয়োজনগুলির সাথে মেলে না তবে আপনি প্রথম ক্রিয়াকলাপের শুরুতে নিজের সংজ্ঞা দিতে পারেন।

static final String EXTRA_STUFF = "com.myPackageName.EXTRA_STUFF";

প্যাকেজ নাম সহ কেবলমাত্র আপনার নিজস্ব অ্যাপ্লিকেশানে কী ব্যবহার করলেই কেবল একটি কনভেনশন রয়েছে। তবে অন্য কোন অ্যাপ্লিকেশান কোনও অভিপ্রায় দ্বারা কল করতে পারে এমন কোনও পরিষেবা তৈরি করার ক্ষেত্রে বিরোধের নামকরণ এড়াতে এটি একটি প্রয়োজনীয়তা।

প্রথম কার্যকলাপ:

Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(EXTRA_STUFF, "my text");
startActivity(intent);

দ্বিতীয় ক্রিয়াকলাপ:

Intent intent = getIntent();
String myText = intent.getExtras().getString(FirstActivity.EXTRA_STUFF);

উদাহরণ 3: একটি স্ট্রিং সম্পদ কী ব্যবহার করে

যদিও ডকুমেন্টেশন উল্লেখ করা হয়নি, এই উত্তর কার্যকলাপ মধ্যে নির্ভরতা এড়ানোর জন্য একটি স্ট্রিং রিসোর্স ব্যবহার করার পরামর্শ দেওয়া হয়।

strings.xml

 <string name="EXTRA_STUFF">com.myPackageName.MY_NAME</string>

প্রথম কার্যকলাপ

Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(getString(R.string.EXTRA_STUFF), "my text");
startActivity(intent);

দ্বিতীয় কার্যকলাপ

Intent intent = getIntent();
String myText = intent.getExtras().getString(getString(R.string.EXTRA_STUFF));

আপনার বর্তমান ক্রিয়াকলাপে, একটি নতুন Intent তৈরি করুন:

String value="Hello world";
Intent i = new Intent(CurrentActivity.this, NewActivity.class);    
i.putExtra("key",value);
startActivity(i);

তারপর নতুন কার্যকলাপে, সেই মানগুলি পুনরুদ্ধার করুন:

Bundle extras = getIntent().getExtras();
if (extras != null) {
    String value = extras.getString("key");
    //The key argument here must match that used in the other activity
}

এক কার্যকলাপ থেকে অন্যের ভেরিয়েবলগুলি পাস করতে এই কৌশলটি ব্যবহার করুন।


আপনি SharedPreferences ব্যবহার করতে পারেন ...

  1. লগিং। SharedPreferences টাইম স্টোর সেশন আইডি

    SharedPreferences preferences = getSharedPreferences("session",getApplicationContext().MODE_PRIVATE);
    Editor editor = preferences.edit();
    editor.putString("sessionId", sessionId);
    editor.commit();
  2. সাইন আউট. সময়ভাগে ভাগ করা সেশন আইডি

    SharedPreferences preferences = getSharedPreferences("session", getApplicationContext().MODE_PRIVATE);
    String sessionId = preferences.getString("sessionId", null);

যদি আপনার প্রয়োজনীয় সেশন আইডি না থাকে, তবে ভাগ করা অংশগুলি সরান:

SharedPreferences settings = context.getSharedPreferences("session", Context.MODE_PRIVATE);
settings.edit().clear().commit();

এটি খুব দরকারী, কারণ একবার আপনি মান সংরক্ষণ করেন এবং তারপরে কার্যকলাপের যেকোনো জায়গা পুনরুদ্ধার করেন।


আপনি আপনার অভিপ্রায় কল যখন অতিরিক্ত অতিরিক্ত পাঠাতে হবে।

এটার মত:

Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("Variable name", "Value you want to pass");
startActivity(intent);

এখন আপনার SecondActivity OnCreate পদ্ধতিতে আপনি SecondActivity অতিরিক্তগুলি আনতে পারেন।

আপনি পাঠানো মান long ছিল যদি :

long value = getIntent().getLongExtra("Variable name which you sent as an extra", defaultValue(you can give it anything));

আপনি পাঠানো মান একটি String ছিল :

String value = getIntent().getStringExtra("Variable name which you sent as an extra");

আপনি পাঠানো মান একটি Boolean ছিল :

Boolean value = getIntent().getBooleanExtra("Variable name which you sent as an extra", defaultValue);

আপনি একটি পার্সেলযোগ্য বর্গ তৈরি করে কাস্টম ক্লাস অবজেক্টগুলি পাস করতে পারেন। এটি প্যাসেসেবল করার সর্বোত্তম উপায় হল আপনার বর্গটি লিখতে এবং তারপরে এটি কেবল http://www.parcelabler.com/ কোনও সাইটে আটকে দিন। বিল্ড উপর ক্লিক করুন এবং আপনি নতুন কোড পাবেন। এই সব অনুলিপি করুন এবং মূল বর্গ বিষয়বস্তু প্রতিস্থাপন করুন। Then-

Intent intent = new Intent(getBaseContext(), NextActivity.class);
Foo foo = new Foo();
intent.putExtra("foo", foo);
startActivity(intent);

এবং পরবর্তী অ্যাক্টিভিটিতে ফলাফল পাবেন-

Foo foo = getIntent().getExtras().getParcelable("foo");

এখন আপনি সহজেই foo বস্তুর ব্যবহার করতে পারেন যেমনটি আপনি ব্যবহার করেছেন।


আপনি ভাগ করা পছন্দ চেষ্টা করতে পারেন, এটি কার্যকলাপের মধ্যে তথ্য ভাগ করার জন্য একটি ভাল বিকল্প হতে পারে

সেশন আইডি সংরক্ষণ করতে -

SharedPreferences pref = myContexy.getSharedPreferences("Session 
Data",MODE_PRIVATE);
SharedPreferences.Editor edit = pref.edit();
edit.putInt("Session ID", session_id);
edit.commit();

তাদের পেতে -

SharedPreferences pref = myContexy.getSharedPreferences("Session Data", MODE_PRIVATE);
session_id = pref.getInt("Session ID", 0);

আরেকটি উপায় হল এমন একটি সার্বজনীন স্ট্যাটিক ক্ষেত্র ব্যবহার করা যেখানে আপনি তথ্য সংরক্ষণ করেন, অর্থাত্:

public class MyActivity extends Activity {

  public static String SharedString;
  public static SomeObject SharedObject;

//...

ইরিচ উল্লেখ হিসাবে Intent অতিরিক্ত পাস একটি ভাল পদ্ধতির।

Application অবজেক্টটি অন্য উপায়ে যদিও, এবং একই সময়ে এটি একাধিক ক্রিয়াকলাপগুলিতে (যখন এটি সব জায়গায় পেতে / প্রতিহত করার বিরোধিতা করে) ব্যবহার করে, অথবা প্রাইমটিভ এবং স্ট্রিংগুলির তুলনায় আরও জটিল বস্তুগুলির সাথে এটি সহজ হয়।

আপনি অ্যাপ্লিকেশন প্রসারিত করতে পারেন এবং তারপরে আপনি যা চান তা সেট / পেতে পারেন এবং getApplication() সহ কোনও কার্যকলাপ (একই অ্যাপ্লিকেশনটিতে) থেকে এটি অ্যাক্সেস করতে পারেন।

এছাড়াও মনে রাখবেন যে স্ট্যাটিকসের মত অন্যান্য দৃষ্টিভঙ্গিগুলি আপনার সমস্যাগুলি সমাধান করতে পারে কারণ এটি মেমরির লিকগুলি হতে পারে । আবেদন খুব এই সমাধান করতে সাহায্য করে।


এখানে আমার সেরা অনুশীলন এবং প্রকল্পটি বিশাল এবং জটিল যখন এটি অনেক সাহায্য করে।

ধরুন আমার 2 টি ক্রিয়াকলাপ আছে, LoginActivity এবং হোম LoginActivity । আমি LoginActivity থেকে LoginActivity থেকে 2 পরামিতি (ব্যবহারকারীর নাম এবং পাসওয়ার্ড) পাস করতে চাই।

প্রথম, আমি আমার HomeIntent তৈরি করি

public class HomeIntent extends Intent {

    private static final String ACTION_LOGIN = "action_login";
    private static final String ACTION_LOGOUT = "action_logout";

    private static final String ARG_USERNAME = "arg_username";
    private static final String ARG_PASSWORD = "arg_password";


    public HomeIntent(Context ctx, boolean isLogIn) {
        this(ctx);
        //set action type
        setAction(isLogIn ? ACTION_LOGIN : ACTION_LOGOUT);
    }

    public HomeIntent(Context ctx) {
        super(ctx, HomeActivity.class);
    }

    //This will be needed for receiving data
    public HomeIntent(Intent intent) {
        super(intent);
    }

    public void setData(String userName, String password) {
        putExtra(ARG_USERNAME, userName);
        putExtra(ARG_PASSWORD, password);
    }

    public String getUsername() {
        return getStringExtra(ARG_USERNAME);
    }

    public String getPassword() {
        return getStringExtra(ARG_PASSWORD);
    }

    //To separate the params is for which action, we should create action
    public boolean isActionLogIn() {
        return getAction().equals(ACTION_LOGIN);
    }

    public boolean isActionLogOut() {
        return getAction().equals(ACTION_LOGOUT);
    }
}

এখানে আমি আমার লগইন অ্যাক্টিভিটিতে ডেটা পাস করি

public class LoginActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        String username = "phearum";
        String password = "pwd1133";
        final boolean isActionLogin = true;
        //Passing data to HomeActivity
        final HomeIntent homeIntent = new HomeIntent(this, isActionLogin);
        homeIntent.setData(username, password);
        startActivity(homeIntent);

    }
}

চূড়ান্ত পদক্ষেপ, এখানে আমি হোম HomeActivity তথ্যটি কীভাবে পেয়েছি

public class HomeActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);

        //This is how we receive the data from LoginActivity
        //Make sure you pass getIntent() to the HomeIntent constructor
        final HomeIntent homeIntent = new HomeIntent(getIntent());
        Log.d("HomeActivity", "Is action login?  " + homeIntent.isActionLogIn());
        Log.d("HomeActivity", "username: " + homeIntent.getUsername());
        Log.d("HomeActivity", "password: " + homeIntent.getPassword());
    }
}

সম্পন্ন! শান্ত :) আমি শুধু আমার অভিজ্ঞতা শেয়ার করতে চান। আপনি যদি ছোট প্রকল্পে কাজ করেন তবে এটি বড় সমস্যা হতে পারে না। কিন্তু যখন আপনার বড় প্রকল্পে কাজ করা হয়, তখন আপনি যখন রিফ্যাক্টিং বা বাগ ফিক্সিং করতে চান তখন এটি সত্যিই ব্যথা হয়।


এটা চেষ্টা কর:

CurrentActivity.java

Intent intent = new Intent(currentActivity.this, TargetActivity.class);
intent.putExtra("booktype", "favourate");
startActivity(intent);

TargetActivity.java

Bundle b = getIntent().getExtras();
String typesofbook = b.getString("booktype");

এটি করার সবচেয়ে সহজ উপায়টি আপনি কার্যকলাপটি শুরু করার জন্য যে Intent ব্যবহার করছেন তা সাইনআউট কার্যকলাপে সেশন আইডিটি পাস করতে হবে:

Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
intent.putExtra("EXTRA_SESSION_ID", sessionId);
startActivity(intent);

পরবর্তী কার্যকলাপ যে অভিপ্রায় অ্যাক্সেস

String sessionId= getIntent().getStringExtra("EXTRA_SESSION_ID");

ইন্টেন্টগুলির জন্য docs আরও তথ্য রয়েছে ("অতিরিক্ত" শিরোনামটি দেখুন)।


কার্যক্রমের মধ্যে তথ্য পাস সবচেয়ে সুবিধাজনক উপায় উদ্দেশ্য প্রেরণ করা হয়। আপনি যেখানে ডেটা পাঠাতে চান সেখান থেকে প্রথম কার্যকলাপে, আপনাকে কোড যোগ করা উচিত,

String str = "My Data"; //Data you want to send
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("name",str); //Here you will add the data into intent to pass bw activites
v.getContext().startActivity(intent);

আপনি আমদানি করা উচিত

import android.content.Intent;

তারপর পরবর্তী Acitvity (দ্বিতীয় অ্যাক্টিভিটি), আপনি নিম্নলিখিত কোডটি ব্যবহার করে অভিপ্রায় থেকে তথ্য পুনরুদ্ধার করা উচিত।

String name = this.getIntent().getStringExtra("name");

চার্লি কলিনস আমাকে Application.class ব্যবহার করে একটি নিখুঁত answer দিয়েছেন। আমি সচেতন ছিলাম যে আমরা সহজেই এটি উপবিষ্ট করতে পারতাম। এখানে একটি কাস্টম অ্যাপ্লিকেশন ক্লাস ব্যবহার করে একটি সরলীকৃত উদাহরণ।

AndroidManifest.xml

android:name দিন android:name আপনার নিজস্ব অ্যাপ্লিকেশন বর্গ ব্যবহার করতে android:name বৈশিষ্ট্য।

...
<application android:name="MyApplication"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
....

MyApplication.java

গ্লোবাল রেফারেন্স ধারক হিসেবে এটি ব্যবহার করুন। এটি একই প্রক্রিয়া মধ্যে জরিমানা কাজ করে।

public class MyApplication extends Application {
    private MainActivity mainActivity;

    @Override
    public void onCreate() {
        super.onCreate();
    }

    public void setMainActivity(MainActivity activity) { this.mainActivity=activity; }
    public MainActivity getMainActivity() { return mainActivity; }
}

MainActivity.java

অ্যাপ্লিকেশন ইনস্ট্যান্সের জন্য গ্লোবাল "এককোন" রেফারেন্স সেট করুন।

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ((MyApplication)getApplication()).setMainActivity(this);
    }
    ...

}

MyPreferences.java

একটি সাধারণ উদাহরণ যেখানে আমি অন্য ক্রিয়াকলাপের উদাহরণ থেকে একটি প্রধান ক্রিয়াকলাপ ব্যবহার করি।

public class MyPreferences extends PreferenceActivity
            implements SharedPreferences.OnSharedPreferenceChangeListener {
    @SuppressWarnings("deprecation")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
        PreferenceManager.getDefaultSharedPreferences(this)
            .registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
        if (!key.equals("autostart")) {
            ((MyApplication)getApplication()).getMainActivity().refreshUI();
        }
    }
}

নিম্নলিখিত কাজ করার চেষ্টা করুন:

একটি সহজ "সহায়ক" বর্গ (আপনার উদ্দেশ্যগুলির জন্য কারখানা) তৈরি করুন, এটির মতো:

import android.content.Intent;

public class IntentHelper {
    public static final Intent createYourSpecialIntent(Intent src) {
          return new Intent("YourSpecialIntent").addCategory("YourSpecialCategory").putExtras(src);
    }
}

এই সব আপনার ইন্টেন্ট জন্য কারখানা হতে হবে। প্রতিবার আপনার নতুন অভিপ্রায় দরকার, ইন্টেন্টহেলপারে স্ট্যাটিক ফ্যাক্টরি পদ্ধতি তৈরি করুন। নতুন অভিপ্রায় তৈরি করার জন্য আপনাকে এটি ঠিক বলে মনে করা উচিত:

IntentHelper.createYourSpecialIntent(getIntent());

আপনার কার্যকলাপে। যখন আপনি কোনও "অধিবেশন" তে কিছু ডেটা "সংরক্ষণ" করতে চান তবে কেবল নীচেরটি ব্যবহার করুন:

IntentHelper.createYourSpecialIntent(getIntent()).putExtra("YOUR_FIELD_NAME", fieldValueToSave);

এবং এই অভিপ্রায় পাঠান। লক্ষ্য ক্রিয়াকলাপে আপনার ক্ষেত্রটি এই হিসাবে উপলব্ধ হবে:

getIntent().getStringExtra("YOUR_FIELD_NAME");

তাই এখন আমরা একই পুরাতন সেশনের মত অভিপ্রায় ব্যবহার করতে পারি (সার্লেট বা JSP )।


আপনি অ্যাক্টিভিটস / ফ্র্যাগমেন্টগুলির মধ্যে বিটম্যাপ ট্র্যানফার করতে চান

কার্যকলাপ

Activites মধ্যে একটি বিটম্যাপ পাস করতে

Intent intent = new Intent(this, Activity.class);
intent.putExtra("bitmap", bitmap);

এবং কার্যকলাপ ক্লাসে

Bitmap bitmap = getIntent().getParcelableExtra("bitmap");

টুকরা

Fragments মধ্যে একটি বিটম্যাপ পাস করতে

SecondFragment fragment = new SecondFragment();
Bundle bundle = new Bundle();
bundle.putParcelable("bitmap", bitmap);
fragment.setArguments(bundle);

SecondFragment ভিতরে পেতে

Bitmap bitmap = getArguments().getParcelable("bitmap");

বড় বিটম্যাপ ট্রান্সফার

যদি আপনি ব্যর্থ বাইন্ডার লেনদেন পেয়ে থাকেন তবে এর অর্থ হল আপনি একটি ক্রিয়াকলাপ থেকে অন্য ক্রিয়াকলাপে বড় উপাদান স্থানান্তর করে বাইন্ডার লেনদেনের বাফার অতিক্রম করছেন।

সুতরাং যে ক্ষেত্রে আপনি একটি বাইট এর অ্যারের হিসাবে বিটম্যাপ সংকুচিত করতে হবে এবং তারপরে অন্য ক্রিয়াকলাপে এটি অসঙ্গতি করতে হবে , যেমন

প্রথম অ্যাক্টিভিটি

Intent intent = new Intent(this, SecondActivity.class);

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPG, 100, stream);
byte[] bytes = stream.toByteArray(); 
intent.putExtra("bitmapbytes",bytes);

এবং দ্বিতীয় অ্যাক্টিভিটি

byte[] bytes = getIntent().getByteArrayExtra("bitmapbytes");
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);

কার্যকলাপ থেকে

 int n= 10;
 Intent in = new Intent(From_Activity.this,To_Activity.class);
 Bundle b1 = new Bundle();
 b1.putInt("integerNumber",n);
 in.putExtras(b1);
 startActivity(in);

কার্যকলাপ করতে

 Bundle b2 = getIntent().getExtras();
 int m = 0;
 if(b2 != null)
  {
     m = b2.getInt("integerNumber");
  }

আপনি কোটলিন ব্যবহার করেন:

প্রধান অ্যাক্টিভিটি 1:

var intent=Intent(this,MainActivity2::class.java)
intent.putExtra("EXTRA_SESSION_ID",sessionId)
startActivity(intent)

প্রধান অ্যাক্টিভিটি 2:

if (intent.hasExtra("EXTRA_SESSION_ID")){
    var name:String=intent.extras.getString("sessionId")
}

প্রথম কার্যকলাপ:

Intent intent = new Intent(getApplicationContext(), ClassName.class);
intent.putExtra("Variable name", "Value you want to pass");
startActivity(intent);

দ্বিতীয় ক্রিয়াকলাপ:

String str= getIntent().getStringExtra("Variable name which you sent as an extra");

আমি সম্প্রতি বাষ্প এপিআইটি প্রকাশ করেছি , এটি একটি jQuery স্বাদযুক্ত Android ফ্রেমওয়ার্ক যা এই সহজ কাজগুলির মতো সমস্ত ধরণের কাজ করে। উল্লিখিত, SharedPreferencesআপনি এই কাজ করতে পারে এক উপায়।

VaporSharedPreferencesসিঙ্গল্টন হিসাবে প্রয়োগ করা হয়েছে যাতে এটি একটি বিকল্প এবং ভাপর এপিআই তে এটি একটি ভারী ওভারলোড করা .put(...)পদ্ধতি রয়েছে তাই আপনাকে ডেটাটাইপ সম্পর্কে স্পষ্টভাবে চিন্তা করতে হবে না - এটি সরবরাহ করা হচ্ছে। এটি তাত্পর্যপূর্ণ, তাই আপনি চেইন কল করতে পারেন:

$.prefs(...).put("val1", 123).put("val2", "Hello World!").put("something", 3.34);

এটি বিকল্পভাবে পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে সংরক্ষণ করে এবং আন্ডার-হুডের পাঠ্য এবং লেখার প্রক্রিয়াটিকে একত্রিত করে যাতে আপনাকে স্ট্যান্ডার্ড এন্ড্রয়েডের মত স্পষ্টভাবে সম্পাদক পুনরুদ্ধার করার প্রয়োজন হয় না।

বিকল্পভাবে আপনি একটি ব্যবহার করতে পারে Intent। বাষ্প এপিআইতে আপনি চেইনলেবল ওভারলোড .put(...)পদ্ধতিটি ব্যবহার করতে পারেন VaporIntent:

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

এবং অন্য উত্তরের উল্লেখ হিসাবে এটি একটি অতিরিক্ত হিসাবে পাস। আপনি আপনার কাছ থেকে অতিরিক্তগুলি পুনরুদ্ধার করতে পারেন Activity, এবং যদি আপনি এটি ব্যবহার করেন VaporActivityতবে এটি স্বয়ংক্রিয়ভাবে আপনার জন্য করা হয়ে থাকে যাতে আপনি এটি ব্যবহার করতে পারেন:

this.extras()

আপনি অন্য Activityসুইচ এ তাদের পুনরুদ্ধার করতে।

কিছু যে আগ্রহের আশা করি :)


/*
 * If you are from transferring data from one class that doesn't
 * extend Activity, then you need to do something like this.
 */ 

public class abc {
    Context context;

    public abc(Context context) {
        this.context = context;
    }

    public void something() {
        context.startactivity(new Intent(context, anyone.class).putextra("key", value));
    }
}







android-activity