java.lang.IllegalStateException:在android:onClick的父或祖先上下文中找不到方法btnSubmit(视图)
这个Java接受编辑文本字段的输入并将它们输出到Toast中 我不知道错误在哪里,也不知道错误是什么,我们非常感谢您的帮助: Javajava.lang.IllegalStateException:在android:onClick的父或祖先上下文中找不到方法btnSubmit(视图),java,android,xml,Java,Android,Xml,这个Java接受编辑文本字段的输入并将它们输出到Toast中 我不知道错误在哪里,也不知道错误是什么,我们非常感谢您的帮助: Java package colonyapplication.colony; import android.app.Activity; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.wi
package colonyapplication.colony;
import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class tenantReg extends Activity {
EditText fullName = (EditText) findViewById(R.id.etFname);
EditText userEmail = (EditText) findViewById(R.id.etEmail);
EditText userPass = (EditText) findViewById(R.id.etPass);
String fName = fullName.getText().toString();
String uEmail = userEmail.getText().toString();
String uPass = userPass.getText().toString();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tenant_reg);
}
public void btnSubmit() {
String tenant = "Tenant";
Toast.makeText(tenantReg.this, "UserName is: " + fName + ". Password is: " + uPass + "email is: " + uEmail + tenant, Toast.LENGTH_LONG).show();
}
}
XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:background="#fcdfaa"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="colonyapplication.colony.tenantReg">
<ImageView
android:id="@+id/imageView2"
android:layout_width="300dp"
android:layout_height="300dp"
android:src="@drawable/colonylogo"
android:layout_above="@+id/passTextBox"
android:layout_centerHorizontal="true"
android:layout_marginBottom="61dp" />
<EditText
android:id="@+id/etFname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/imageView2"
android:layout_alignStart="@+id/imageView2"
android:layout_below="@+id/imageView2"
android:ems="10"
android:hint="Full Name"
android:inputType="textPersonName" />
<EditText
android:id="@+id/etEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/etFname"
android:layout_alignStart="@+id/etFname"
android:layout_centerVertical="true"
android:ems="10"
android:hint="Email"
android:inputType="textEmailAddress" />
<EditText
android:id="@+id/etPass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="29dp"
android:ems="10"
android:hint="Password"
android:inputType="textPassword"
android:layout_below="@+id/etEmail"
android:layout_alignStart="@+id/etEmail"
android:layout_alignEnd="@+id/etEmail" />
<EditText
android:id="@+id/etPassconfirm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="34dp"
android:ems="10"
android:hint="Confirm Password"
android:inputType="textPassword"
android:layout_below="@+id/etPass"
android:layout_alignStart="@+id/etPass"
android:layout_alignEnd="@+id/etPass" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="47dp"
android:background="#EE7600"
android:onClick="btnSubmit"
android:text="Submit"
android:textAllCaps="false"
android:textColor="#ffffff"
android:textSize="17sp"
android:layout_below="@+id/etPassconfirm"
android:layout_alignStart="@+id/etPassconfirm" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel"
android:background="#EE7600"
android:textAllCaps="false"
android:textColor="#ffffff"
android:textSize="17sp"
android:layout_alignBaseline="@+id/button"
android:layout_alignBottom="@+id/button"
android:layout_alignEnd="@+id/etPassconfirm"
android:layout_marginEnd="33dp" />
</RelativeLayout>
无论出于何种原因,当单击submit按钮时,程序将在emulator中停止。Android监视器中的错误状态为:“java.lang.IllegalStateException:在Android的父或祖先上下文中找不到方法btnSubmit(视图):在视图类Android.support.v7.widget.AppCompatButton上定义的onClick属性,id为'button'”,因为我看到您有2个按钮,但我不知道哪个是提交按钮。 我也找不到
public void btnSubmit()
的含义。正如我所知,您应该定义tn提交:
Button btnSubmit = (Button) findViewById(R.id.your_btnSubmit_id);
然后使用onClickListener方法在btn单击时执行某些操作
btnsubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Do somthing
}
});
编辑:
您可以使用您的代码来替换
public void btnSubmit()
为此:
public void btnSubmit(View v)
正如我看到你有2个按钮,但我不知道哪一个是提交按钮。 我也找不到
public void btnSubmit()
的含义。正如我所知,您应该定义tn提交:
Button btnSubmit = (Button) findViewById(R.id.your_btnSubmit_id);
然后使用onClickListener方法在btn单击时执行某些操作
btnsubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Do somthing
}
});
编辑:
您可以使用您的代码来替换
public void btnSubmit()
为此:
public void btnSubmit(View v)
btnSubmit在XML中定义为onClick。“android:onClick=“btnSubmit”,因此只需公开void btnSubmit(){}就可以了。我已经这样做了好几年了,我确实需要为粗糙的XML代码命名,但由于Android Studio是拖放式和硬代码,很容易变得懒散,我很抱歉。我没有看到,但我知道您应该在提交时使用(视图v)。像这个链接一样,嗨,为回复干杯,(视图v)也不起作用,我想它一定是代码中非常无聊的东西!事实上,我试图设置另一个按钮(cancel)来实现这一点:public void btnCancel(View v){setContentView(R.layout.activity_main_page);},甚至抛出了与onClick相同的错误btnsubmit在XML中定义。“android:onClick=“btnSubmit”,因此只需公开void btnSubmit(){}就可以了。我已经这样做了好几年了,我确实需要为粗糙的XML代码命名,但由于Android Studio是拖放式和硬代码,很容易变得懒散,我很抱歉。我没有看到,但我知道您应该在提交时使用(视图v)。像这个链接一样,嗨,为回复干杯,(视图v)也不起作用,我想它一定是代码中非常无聊的东西!事实上,我试图设置另一个按钮(取消)来实现这一点:public void btnCancel(View v){setContentView(R.layout.activity_main_page);},即使这样也会引发同样的错误