How to pass an object from one activity to another on Android

后端 未结 30 3793
遇见更好的自我
遇见更好的自我 2020-11-21 04:03

I am trying to work on sending an object of my customer class from one Activity and display it in another Activity.

The code for t

30条回答
  •  有刺的猬
    2020-11-21 04:55

    I had always wondered why this can't be as simple as calling into a method of the other activity. I recently wrote a utility library that makes it almost as simple as that. You can check it out here(https://github.com/noxiouswinter/gnlib_android/wiki/gnlauncher).

    GNLauncher makes sending objects/data to an Activity from another Activity etc as easy as calling a function in tha Activity with the required data as parameters. It introduces type safety and removes all the hastles of having to serialize, attaching to the intent using string keys and undoing the same at the other end.

    Usage

    Define an interface with the methods you want to call on the Activity to launch.

    public interface IPayload {
        public void sayHello(String name, int age);
    }
    

    Implement the above interface on the Activity to launch into. Also notify GNLauncher when the activity is ready.

    public class Activity_1 extends Activity implements IPayload {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //Notify GNLauncher when the Activity is ready. 
            GNLauncher.get().ping(this);
        }
    
        @Override
        public void sayHello(String name, int age) {
            Log.d("gnlib_test", "Hello " + name + "! \nYour age is: " + age);
        }
    }
    

    In the other Activity, get a proxy to the above Activity and call any method with the desired parameters.

    public class Activity_2 extends Activity {
        public void onClick(View v) {
            ((IPayload)GNLauncher.get().getProxy(this, IPayload.class, Activity_1.class)).sayHello(name, age);
        }
    }
    

    The first activity will be launched and the method called into with the required parameters.

    Prerequisites

    Please refer to https://github.com/noxiouswinter/gnlib_android/wiki#prerequisites for information on how to add the dependencies.

提交回复
热议问题