尽管在Java文件MainActivity中声明了onButtonHomeClick方法,但当我尝试在XML中引用该方法时,我收到错误消息:“MainActivity中的方法onButtonHomeClick具有错误的签名”。它们都在下面,我不能为我的生活找出它为什么会返回这样的错误,特别是因为尝试通过Ctrl单击导航到XML类文件中的按钮导航到声明导航到Java类中的方法。登记/> 并且它肯定很难找到该方法,因为Android监视器在尝试将行为分配给按钮时返回致命错误。
<!-- XML file -->
<item
android:id="@+id/button_home"
android:orderInCategory="100"
android:icon="@drawable/home"
android:title="Home"
android:onClick="onButtonHomeClick"
app:showAsAction="always"
/>
//Java method
public void onButtonHomeClick(View v){
Intent intent = new Intent(this, MainActivity.class);
}
答案 0 :(得分:8)
清除您的项目并确保将onButtonHomeClick()方法声明为public void
。
答案 1 :(得分:1)
您的点击方法包含MenuItem
的无效参数。对于MenuItem
,它是
public void onClickMethod(MenuItem menuItem) {
// Your code here
}
public void onClickMethod(View view) {...}
适用于您的活动布局中的View
。
同样,仅创建Intent
将无法启动Activity
。要开始活动,您应该将意图传递给startActivity()
。
答案 2 :(得分:0)
您需要在方法中添加startActivity(intent);
,因此它应该是这样的:
public void onButtonHomeClick(View v){
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
我尝试了包含startActivity(intent);
的代码,但效果很好
答案 3 :(得分:0)
在科特林:
curl -X POST http://localhost:8080/api/experimental/dags/<dag_id>/dag_runs -H 'Cache-Control: no-cache' -H 'Content-Type: application/json' -d '{"conf":"{\"key\":\"value\"}"}'
在您的活动中创造有趣的onClick
<android.support.v7.widget.AppCompatButton
android:id="@+id/mRecharge_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:textSize="18sp" />
答案 4 :(得分:0)
还必须为所有视图定义android: onClick
方法。请记住,所有视图中的单击方法名称都相同。
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layoutDirection="rtl" >
<RadioButton
android:id="@+id/radioButton_score"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Score"
android:onClick="OnClickView"/>
<RadioButton
android:id="@+id/radioButton_discoun_percent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Discoun Percent"
android:onClick="OnClickView" />
</RadioGroup>
public void OnClickView(View view) {
switch(view.getId()){
case R.id.radioButton_score:
Toast.makeText(this, "click Score",
Toast.LENGTH_SHORT).show();
break;
case R.id.radioButton_discoun_percent:
Toast.makeText(this, "click Discoun Percent",
Toast.LENGTH_SHORT).show();
break;
}
}
答案 5 :(得分:-1)
您是否记得在MainActvity.java文件中包含View类的导入? (默认情况下不会导入。)
import android.view.View;