【问题标题】:My java class won't run inside main activity? [closed]我的 java 类不会在主要活动中运行? [关闭]
【发布时间】:2015-03-31 15:39:34
【问题描述】:

好的,所以我修复了我的应用程序没有启动的任何问题,但现在我的 MainActivity 不会执行我的 java 类,其中我有为我的简单计算器进行计算的方法。我对android很陌生,如果你在“main”中运行一个类,它会执行那个类,所以我不太确定发生了什么,当我点击一个按钮时,我的计算应该发生在我的“something.java”类没有发生,所以我不确定我的“MainActivity”是否正在执行我的“something.java”类。这是我问的另一个问题的代码(代码有效,只需要重新启动 IDE):My Application won't start up?

【问题讨论】:

  • 发布您当前的代码。
  • @PM77-1 这是我当前的代码,这是我的 IDE 的问题,我重新同步并重新启动它,它工作正常。
  • 即使那是您当前的代码,为了简单起见和长寿,您也应该在此处包含它。你可能有一天会删除那个并把这个变成栗色。
  • 你真的阅读了接受的答案吗?

标签: java android


【解决方案1】:

我浏览了您的其他帖子,但您不是这样开始活动的。您正在尝试像创建普通对象一样创建 Activity 实例。虽然这在 java 中是可以接受的,但在 Android 中却不能这样工作。

Android 基于回调。一个活动代表设备上的一个屏幕。它是使用 Intents 开始的。您需要指定活动将在其屏幕中使用的布局,您通常在 onCreate() 方法中执行此操作。您的 Something.java 是一个没有布局且没有 onCreate() 方法的 Activity。我建议在继续之前阅读 Android 中的 Activity 生命周期和膨胀布局。

您可以像这样从 ActivityA 启动 Something.java:

Intent intent = new Intent(this, Something.class);
startActivity(intent);

使用意图是您启动 Activity 的方式。在 Something.java 中,您需要像在第一个 Activity 中所做的那样覆盖 onCreate() 方法,然后为其设置视图。

就像我说的,Android 是基于方法回调的。当您仍在使用 Java 时,您应该遵循与 Android 操作系统交互的模式。

【讨论】:

  • @Sunii 我想,既然我在“MainActivity”类的“onCreate”方法中创建了“Something.java”的实例,并且指定了布局,它不应该工作吗?基本上我想要完成的是在我的“MainActivity”类中指定我的布局并在我的“Something.java”类中进行计算,但是当我点击我的“Something.java”类中的一个按钮时应该处理“onClick”它什么也没做。我在“onCreate”方法中创建了一个“something”的实例,它有一个布局,为什么它不起作用。
  • 不,Something.java 是一个单独的活动。每个 Activity 都应该有自己的布局(您可以重用布局,但这会破坏设计范式)。请参阅我编辑的关于如何启动 Activity 的答案。
  • 哦,我不想创建一个新的“活动”,我只想使用“Something.java”来处理“onClick”方法,以便计算数字。你知道像“MainActivity”是“Activity”和“Something.java”处理事件。我不确定为什么它在这里不起作用,因为它在 java 中运行良好。
  • 啊……我明白你的意思了。但是不,Android 不允许您在另一个上下文(一个活动是一个上下文)中使用 onClickListener()。每个 Activity 都必须实现它自己的 onClickListener()。原因是因为一个 Activity 代表一个不同的屏幕,执行不同的任务,你不能在不同的 Activity 中使用 onClick() 方法。
  • 好的,关于如何在我的 something.java 类中使用 onClick() 而不必使其成为活动的任何想法?问题是如果我不让它成为一个活动,我将无法使用 findViewById 方法为我的 layout.xml 中的按钮分配一个按钮侦听器?
猜你喜欢
  • 2013-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-08
相关资源
最近更新 更多