我想根据按钮上的哪个项目选择按钮按下某个动作。 这是我到目前为止所得到的:
public void submitButton (View v){
Button b1 = (Button)findViewById(R.id.submitButton);
final Spinner s1 = (Spinner)findViewById(R.id.spinner1);
final Context context = this;
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final int position = s1.getSelectedItemPosition();
switch (position){
case 0:
AlertDialog.Builder spinnerErrorBuilder = new AlertDialog.Builder(context);
spinnerErrorBuilder.setTitle("Warning");
spinnerErrorBuilder.setMessage("Please choose an item from the list");
spinnerErrorBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog spinnerError = spinnerErrorBuilder.create();
spinnerError.show();
break;
case 1:
break;
}
}
});
}
当我编译应用程序并单击按钮时,应用程序崩溃并返回主活动。无论我选择哪个项目(0或1),应用程序仍然崩溃无关紧要。有人能告诉我哪里出错了吗?
按钮的XML代码:
<Button
android:id="@+id/submitButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/editText1"
android:layout_alignBottom="@+id/editText1"
android:layout_alignLeft="@+id/checkBox25"
android:text="@string/addMaterial"
android:onClick="onClick" />
Logcat文件:
06-22 15:00:13.455: E/AndroidRuntime(23409): java.lang.IllegalStateException: Could not find a method onClick(View) in the activity class com.example.gw2legendary.Bifrost for onClick handler on view class android.widget.Button with id 'submitButton'
答案 0 :(得分:2)
只需删除此行:
android:onClick="onClick"
你的xml中的。一定要从onCreate调用submitButton而不传入视图,因为这不需要。
您可以像在
中一样在代码中设置onclicklistener... b1.setOnClickListener
或者只是有一个方法,如:
public void method {//这是一个方法,所以这里做的东西}
并将其设置在xml中,如下所示
机器人:的onClick = “方法”
在上面的示例中,将submitButton更改方法可以正常工作。
答案 1 :(得分:0)
您的方法名称为submitButton
,但xml中的onClick方法为onClick
将其更改为submitButton
并解决您的问题
Xml应该是
<Button
android:id="@+id/submitButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/editText1"
android:layout_alignBottom="@+id/editText1"
android:layout_alignLeft="@+id/checkBox25"
android:text="@string/addMaterial"
android:onClick="submitButton " />