按钮onClick错误...找不到方法 [英] Button onClick error...Could not find a method

查看:877
本文介绍了按钮onClick错误...找不到方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I can't seem to start a new Activity from my Button, I have searched here for answers, but can't seem to resolve the problem. I hope someone has an easy solution. Thanks In advance.

这是错误:

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

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);
    }
}

推荐答案

问题出在您的方法签名中

The problem is in your method signature

public void openSearch(){

它应该只有一个参数,并且是一个View.

it should have one, and only one param, which is a View.

将其更改为

public void openSearch(View v){

v显然可以是您想要的任何东西,但是您应该使它有意义,例如vview等...

v obviously can be anything you want it to be but you should make it something meaningful like v, view, etc...

从文档中

为此,该方法必须是公共的,并且必须将View作为其唯一参数.

In order for this to work, the method must be public and accept a View as its only parameter.

查看此答案有关添加ButtonsOnClick

这篇关于按钮onClick错误...找不到方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆