Android 如何在不使用意图的情况下将对象从一个活动传递到另一个活动

Android 如何在不使用意图的情况下将对象从一个活动传递到另一个活动,android,android-activity,interface,Android,Android Activity,Interface,我是开发Android的新手。我有个问题。如何在不使用Intent的情况下将对象从一个活动传递到另一个活动。我可以通过接口进行传递吗?如果可以,请如何处理在单例类模型中保存数据并从另一个活动获取相同对象的问题 创建这样一个类 public class SingletonModel { private static SingletonModel instance; public String textData = "" public synchronized

我是开发Android的新手。我有个问题。如何在不使用Intent的情况下将对象从一个活动传递到另一个活动。我可以通过接口进行传递吗?如果可以,请如何处理在单例类模型中保存数据并从另一个活动获取相同对象的问题 创建这样一个类

 public class SingletonModel {
     private static SingletonModel instance;
     public String textData = ""


     public synchronized  static SingletonModel getSingletonModel() {

         if (instance == null) {
             instance = new SingletonModel();
         }
         return instance;

     }

 private void SingletonModel(){}

 }
SingletonModel.getSingletonModel().textData ="Your data goes here";
 textView.setText(SingletonModel.getSingletonModel().textData);
从第一次活动开始,你就这样做

 public class SingletonModel {
     private static SingletonModel instance;
     public String textData = ""


     public synchronized  static SingletonModel getSingletonModel() {

         if (instance == null) {
             instance = new SingletonModel();
         }
         return instance;

     }

 private void SingletonModel(){}

 }
SingletonModel.getSingletonModel().textData ="Your data goes here";
 textView.setText(SingletonModel.getSingletonModel().textData);
从第二个活动开始,你会这样做吗

 public class SingletonModel {
     private static SingletonModel instance;
     public String textData = ""


     public synchronized  static SingletonModel getSingletonModel() {

         if (instance == null) {
             instance = new SingletonModel();
         }
         return instance;

     }

 private void SingletonModel(){}

 }
SingletonModel.getSingletonModel().textData ="Your data goes here";
 textView.setText(SingletonModel.getSingletonModel().textData);

我想你有两个选择

  • 在内存中,将其保存到所有活动都可以到达的位置,或者使其保持静态。但这不是个好主意
  • 将其保存到磁盘并使用,如共享首选项
    • 您可以将其存储在SharedReferences中,然后再存储在其他活动中 恢复它
    • 您可以将其存储在SQLite中,然后在另一个活动中还原它
    • 您可以使用静态链接
    • 你可以使用这项服务

    如果数据应该保留,请使用文件。如果没有,请使用单例。

    最大的问题:为什么不使用Intent?“通过”表示一项活动开始另一项活动。那么,为什么不使用您必须创建的意图来启动第二个活动?为什么不在意图上使用putExtra我的主要目的是我的主要目的是我有3个活动,MainActivity,ShowDetailActivity,EditDetailActivity MainActivity有listview,当我在listview上单击项目时,ShowDetailActivity启动。ShowDetailActivity上的组件可见值为false。这只是为了查看。然后我在ShowDetailActivity上单击了选项菜单项(编辑),EditDetailActivity启动,用户可以更改Course对象的值。之后,对象的更新值将传输到Listview以进行MainActivity。我在MainAcivity上只有ArrayList,因此textData是私有的,无法通过
    操作符访问