我似乎无法从我的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);
}
}
答案 0 :(得分:6)
问题在于您的方法签名
public void openSearch(){
它应该有一个,只有一个参数,即View
。
将其更改为
public void openSearch(View v){
v
显然可以是您想要的任何内容,但您应该使其成为有意义的内容,例如v
,view
等......
为了使其正常工作,该方法必须是公共的,并接受View作为其唯一参数。
See this answer有关添加Buttons
和OnClick
答案 1 :(得分:1)
首先引用您的按钮
search = (Button) findViewById(R.id.btnStartSearch);
然后为按钮实现onClick列表器,如下所示
search.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent openSearchIntent = new Intent(MainActivity.this, StartSearch.class);
startActivity(openSearchIntent)
}
});
确保从XML文件中删除此行
android:onClick="openSearch"