Android 如何使用putExtra向多个活动发送数据
我有以下代码:Android 如何使用putExtra向多个活动发送数据,android,android-intent,Android,Android Intent,我有以下代码: Intent intent = new Intent(); intent.setClass(getApplicationContext(), DetailView.class); intent.putExtra("position", Integer.toString(position + 1)); startActivity(intent); 如您所见,我正在使用putExtra
Intent intent = new Intent();
intent.setClass(getApplicationContext(), DetailView.class);
intent.putExtra("position", Integer.toString(position + 1));
startActivity(intent);
如您所见,我正在使用putExtra将position的值发送给名为DetailView的类。我想将相同的位置发送到另一个类,我不想启动活动,我只想发送“位置”的值。你们谁能告诉我怎么做。欢迎所有建议。提前谢谢。如果需要更多信息,请告诉我。如果您不想启动其他活动,我可以为您提供三个选项 1.创建
public static int position
并访问它查看class
name
当设置
值ClassName.position=此处的值..
当从任何类中获取时,将用作ClassName.position代码>
2.使用setter
和getter
方法创建一个class
3.将值存储在SharedReference
当您的位置
值发生变化时,更新上述各项。您需要传递位置变量的此类还将在哪里使用
如果您已经在创建一个新的类实例,最好的方法可能是简单地通过构造函数传递值
否则,我建议将public
或public static
方法添加到要接收位置变量的类中
public class PositionReceiver {
private int mPosition;
public void setPosition(int position){
mPosition = position;
}
}
或
我建议您使用SharedReference,这样您就可以在应用程序的任何位置访问它的值position的值并不总是相同的,它每次都在变化。使用共享首选项可以做到这一点吗?每次我需要在共享首选项中存储值时,对吗?您可以更新共享首选项,更新后的值将在您的应用程序中随时可用OK。非常感谢。将对此进行尝试。您接受了一个相当差的答案,该答案将不提供更新通知,而是要求您的接收者投票进行更改,请重新考虑,因为广播目的很可能最适合您的需要。在第一个访问它的视图类名中,我不明白吗?对不起,是的,我会试试的。非常感谢。存储在共享首选项中很有效。1不起作用。谢谢你更新我的信息,也谢谢你接受我的回答。不。这些机制中的第一个和第三个都不提供更新通知,而第二个机制则很困难,因为可能没有要通知的目标类的实例,并且您不能简单地按照通常的单例模式创建一个。否。决不能调用Android活动子类的构造函数,因为结果将是非功能性的。只有系统可以创建活动的工作实例。调用公共方法不一定是非功能性的,但有点风险/棘手,因为您不一定有任何实例来处理该信息。
public class PositionReceiver {
private static int sPosition;
public static setPosition(int position){
sPosition = position;
}
}