【问题标题】:Application crashes on call to a new activity调用新活动时应用程序崩溃
【发布时间】:2011-08-18 18:24:29
【问题描述】:

这对您来说可能不是一个新问题 - 我有我的主要活动,我想在另一个活动中调用一个方法。现在,如果我这样做,我的应用程序没有响应并关闭。

我听说有一些特殊的方法可以调用其他活动类中的方法?

【问题讨论】:

  • 您能否显示您的代码或您遇到的错误。
  • 贴出您当前尝试使用的代码。
  • 信息太少,说不出话来。请详细说明。为什么你需要从另一个活动中调用一个方法。如果在 2 项活动中需要它,那么最好是全球性的。

标签: java android android-activity


【解决方案1】:

这通常是个坏主意,原因是您无法控制非活动 Activity 的生命周期。你可以调用一个方法,发现你调用的activity已经被销毁来回收资源。

更好的选择是创建一个实用程序类,该类可以为多个活动提供功能,或者将必须在应用程序的整个生命周期中保留的东西放入应用程序类或共享首选项中。

如果您要做的只是将信息传递给新活动或从另一个活动获取信息,您可能希望将该信息打包到意图中,或再次将其置于共享首选项中。

【讨论】:

  • 是的,我想传递在第一个活动中生成的一些信息,并将其显示在其他活动中。您能否详细解释一下这个实用程序类以及如何使用它?
  • 如果您只想传递信息,您应该将数据作为额外的数据添加到调用即将到来的课程的 Intent 中。 stackoverflow.com/questions/2965109/…
  • 此数据需要显示在第二个活动的屏幕上,所以基本上我需要将信息发送到另一个类,然后以某种方式使用第二个活动从这个“实用程序类”中提取该信息并显示它在屏幕上?
  • 不,您应该按照我上次的评论将其作为额外的意图传递。
  • 我使用类变量来保存我的应用程序中的信息,我找不到一个很好的方式来进行一些活动。它们对我来说很好用。
【解决方案2】:

只需创建另一个类并将该方法放在该类中。然后从两个活动中访问。

【讨论】:

  • 我创建了另一个类来设置和获取该类的信息。我发现写这个类不会导致活动崩溃,但是从这个类中获取信息是我的活动崩溃的原因。
  • 如果有帮助,我正在尝试使用我创建的实用程序类中的信息更改 TextView 中的文本: public class Shifts extends Activity implements OnClickListener{ Utility UT2 = new Utility(); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);设置内容视图(R.layout.shifts); TextView setDate = (TextView)this.findViewById(R.id.shifts); setDate.setText(UT2.date); } @Override public void onClick(View v) { // TODO 自动生成的方法存根 }}
猜你喜欢
  • 2017-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多