当前位置: 首页 > 知识库问答 >
问题:

方法声明过程中的错误

裴硕
2023-03-14

有人能告诉我下面的程序有什么问题吗?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    int addAToB(int a, int b)
    {  
        int answer = a + b;  
        return answer; 
    } 
}

我是Android应用程序开发的一名完全初学者,并且已经有相当一段时间面临这个问题。每当我使用任何方法时,Android Studio都会显示错误。另一个例子是这个。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toast.makeText(this, "Can you see me", Toast.LENGTH_SHORT).show();
    public void topClick (View v){
        Toast.makeText(this, "Top button clicked", Toast.LENGTH_SHORT).show();

    }
    public void bottomClick (View v){
        Toast.makeText(this, "Bottom button clicked", Toast.LENGTH_SHORT).show();
    }
}

这是一个应用程序,其中创建了两个按钮,每当用户单击顶部按钮时,就会显示“top button clicked”消息,每当用户单击底部按钮时,就会显示“bottom button clicked”消息

我已经重新安装了两次Android Studio,希望它能解决这个问题,但它没有。

共有3个答案

丁恩
2023-03-14

不能在另一个方法中声明方法:

将您的代码更改为:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

}
int addAToB(int a, int b)
    {  
        int answer = a + b;  
        return answer; 
    }

同样对于其他代码,您在方法内部初始化了button click事件,这是错误的。进行更改后,您的代码应该如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toast.makeText(this, "Can you see me", Toast.LENGTH_SHORT).show();

}

public void topClick (View v){
        Toast.makeText(this, "Top button clicked", Toast.LENGTH_SHORT).show();

    }
    public void bottomClick (View v){
        Toast.makeText(this, "Bottom button clicked", Toast.LENGTH_SHORT).show();


    }

这很好用。祝你好运

闻飞跃
2023-03-14

将topClick和bottomClick功能移到外部。不应该在另一个函数中声明命名函数。

凌炜
2023-03-14

您将一个空放在一个空中,这不应该像Java中那样。

试试这个结构:

protected void onCreate (Bundle savedInstanceState) {
    //some code
}

public void topClick(View v) {
    //some code
}

public void bottomClick(View v) {
    //some code
}

看到这个Stackoverflow问题,您不能在Java中的方法中放置一个方法。

编辑:抱歉,没有看到其他人已经更快了。如果另一个答案被接受,我会删除这个。

 类似资料:
  • 6.1. 方法声明 在函数声明时,在其名字之前放上一个变量,即是一个方法。这个附加的参数会将该函数附加到这种类型上,即相当于为这种类型定义了一个独占的方法。 下面来写我们第一个方法的例子,这个例子在package geometry下: gopl.io/ch6/geometry package geometry import "math" type Point struct{ X, Y floa

  • 本文向大家介绍显示声明的java.lang.Math方法,包括了显示声明的java.lang.Math方法的使用技巧和注意事项,需要的朋友参考一下 可以使用java.lang.Class.getDeclaredMethods()方法列出java.lang.Math类的方法。  此方法返回一个数组,其中包含具有公共,私有,受保护和默认访问权限的所有Method对象。但是,不包括继承的方法。另外,如果

  • 我对DB2中的过程有疑问。我使用“create procedure”创建了一个存储过程,在这个存储过程中,我还有一个使用“declare procedure”声明的存储过程。但是,这个由declare创建的过程不能使用“call”调用。 当我尝试运行该过程时,Db2返回: [代码:-440,SQL状态:42884]DB2 SQL错误:sqlcode=-440,sqlstate=42884,sqle

  • 我知道有很多问题与类似的问题,但我一直在寻找答案,仍然无法找到我的问题。我已经尝试了几种方法来解决这个问题,但我找不到任何解决方案。。。 我代码的一部分:(我不会在其他任何地方使用这个函数) 我得到以下信息: 致命错误:无法在第20行的C:\wamp64\www\myProject-dev\Public\cajas\reposiciones\controller3.php:20中重新声明Valid

  • 问题内容: PHP中此错误的可能原因是什么?在哪里可以找到有关 兼容的信息 ? 问题答案: 与相比具有不同的参数或不同的访问级别(公共/私有/受保护)。

  • 上一节展示了如何为ListOfNumbers类中的writeList方法编写异常处理程序。 有时,它适合代码捕获可能发生在其中的异常。 但在其他情况下,最好让一个方法进一步推给上层来调用堆栈处理异常。 例如,如果您将ListOfNumbers类提供为类包的一部分,则可能无法预期包的所有用户的需求。 在这种情况下,最好不要捕获异常,并允许一个方法进一步推给上层来调用堆栈来处理它。 如果writeLi