当前位置: 首页 > 面试题库 >

按钮onClick错误...找不到方法

胡和煦
2023-03-14
问题内容

我似乎无法Activity从我的新手开始Button,我在这里搜索了答案,但似乎无法解决问题。我希望有人有一个简单的解决方案。提前致谢。

这是错误:

E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not find a method openSearch(View) in the 
activity class dk.mathias.splitcab.MainActivity 
for onClick handler on view class android.widget.Button with id 'btnStartSearch'

MainActivity.java

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

}

public void openSearch(){
    Intent openSearchIntent = new Intent(MainActivity.this, StartSearch.class);
    startActivity(openSearchIntent);
}

AndroidManifest.xml

    <activity
        android:name=".StartSearch"
        android:label="@string/title_activity_start_search" >
        <intent-filter>
            <action android:name="dk.mathias.splitcab.STARTSEARCH" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

activity_main.xml

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/StartSearch"
    android:id="@+id/btnStartSearch"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignRight="@+id/tvWelcome"
    android:layout_alignEnd="@+id/tvWelcome"
    android:onClick="openSearch"

    />

StartSearch.java

public class StartSearch extends Activity {

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

问题答案:

问题出在您的方法签名中

public void openSearch(){

它应该只有一个参数,也就是一个View

更改为

public void openSearch(View v){

v显然可以是你希望它是什么,但你应该让一些有意义的事情一样vview等…

来自文档

为了使它起作用,该方法必须是公共的并且接受View作为其唯一参数。



 类似资料:
  • 我正在用JavaFX制作一个桌面应用程序,我制作了一个仅出现5秒的启动屏幕,5秒后它会显示一个带有按钮的新阶段,当我单击按钮时,它会发送一个错误: 下面是JavaFX类 RootForm.java(启动屏幕) } RootForm.fxml(启动屏幕fxml) Error.fxml(带按钮的第二阶段) ErrorController.java(应该出现的第二阶段) 在我点击第二个屏幕上的按钮后,我

  • 我试图在Android中做一个简单的计算器。

  • 错误:Einstein类中找不到Main方法,请将Main方法定义为:public static void Main(string[]args)或JavaFX应用程序类必须扩展JavaFX.application.application 我怎么才能修好这个?

  • 问题内容: 我在android中启动了程序,一次活动中有3个按钮。 我看到了一些示例代码,它们为所有按钮(即使它们执行完全不同的操作)分配了相同的事件,并且在方法情况下为案例… 有什么更好的方法?一种方法和一种或多种切换方法,每个按钮一种? 谢谢。 问题答案: 如果要减少编码行,请使用;如果要单独处理所有单击(为便于理解和维护代码),请分别使用所有 更新: 如果在“活动”布局xml文件中声明了Bu

  • 问题内容: 当我单击按钮时,我希望值更改为从。 HTML: Javascript: 该按钮现在正在显示打开的窗帘,我希望将其更改为关闭窗帘,对吗? 问题答案: 如果我已正确理解您的问题,则希望在“打开窗帘”和“关闭窗帘”之间切换-如果关闭,则切换为“打开窗帘”,反之亦然。如果那是您需要的,那么它将起作用。 请注意,您不需要使用内部更改,因为它是在 上下文 中调用的-我所说的 上下文 是指您稍后会在

  • 下面是一个jquery教程,该教程使用标准的href文本链接进行初始化。我把一切都搞定了。作为最后一步,我想移除文本链接,并用一个使用其click事件的按钮替换它。这里是我的代码,它现在存在: 所以,我设置了一个非常简单的按钮,但是我不知道要在onclick事件处理程序中放什么。如果这是一个简单的URL链接,没有问题。我将只编写一个jquery函数(甚至只编写一个js函数)。但在这段代码的上下文中