【问题标题】:Call Public void呼叫公共无效
【发布时间】:2012-06-09 01:40:50
【问题描述】:

我在一个类中有一个公共 void,我想在它创建时在另一个类中调用它,但似乎没有任何效果。这是我第一个活动的代码

public class activityone extends Activity {

public void actionC() {

//actions

}

有人知道在我的第二堂课上怎么称呼它吗?

【问题讨论】:

  • 请更新您的示例代码以包含您的第二类,以便我们了解您要做什么!
  • 我想要做的就是将那个 void(actionC) 称为我的第二类我。二等舱什么都没有
  • 最好的方法是让 actionC() 成为一个静态函数(即 public static void actionC() {} )。这样,您可以使用 activityone.actionC() 调用它,您不需要 activityone 的实例。
  • @TusharDhoot,你不能说静态调用是否是这个最小示例中的“最佳方式” - 也许 activityone 需要 被实例化。在您知道代码的用途之前,这都是纯粹的假设。

标签: android class void


【解决方案1】:

你可以这样做:

public class activityone extends Activity {

/*public void actionC() {*/ //Instead on normal method, write your actions in onCreate()

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//actions
}

在你的第二个活动中,这样做:

Intent intent = new Intent(getApplicationContext(),activityone.class);
startActivity(intent);

希望对你有帮助!!!

【讨论】:

    【解决方案2】:

    通常,您需要有一个 activityone 类的实例才能调用实例方法。

    要创建实例,您通常使用如下构造函数:

    activityone a = new activityone();
    a.actionC();
    

    我不确定这是否是您想要的,因为Activitys 通常是由 Android 系统本身创建的,您应该改为处理 onCreate 方法。

    【讨论】:

    • @SUPLMMM 它并没有因为上面的代码而崩溃 - 这是因为您在代码中执行的操作。您有异常详情吗?
    • 什么崩溃了?它必须在您的构造函数或 actionC 中。创建一个简单的对象和调用一个简单的函数都可以工作。我想知道它是否与扩展 Activity 有关,但我对此进行了测试,它使用了一个只进行日志记录的 void 函数。
    猜你喜欢
    • 2017-10-29
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 2021-04-19
    • 1970-01-01
    相关资源
    最近更新 更多