Java 安卓点击按钮未点击事件

Java 安卓点击按钮未点击事件,java,android,Java,Android,我的activity\u main.xml视图中只有一个按钮,如下所示: <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/capt_sig" android:onClick="openCaptureActivity" //click event here andro

我的
activity\u main.xml
视图中只有一个按钮,如下所示:

<Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/capt_sig"
        android:onClick="openCaptureActivity" //click event here
        android:text="@string/capture_signature"
        android:layout_below="@+id/result"
        android:layout_alignParentEnd="true"
        android:layout_marginTop="235dp"
        android:clickable="true"
        android:typeface="sans" />
public void SaveSignature(View v){
    //Do some stuff
}
现在,单击
按钮的
onClick
,它将在
活动
下方打开,名称为
活动捕获签名.xml
,以下是内容

<android.gesture.GestureOverlayView
        android:id="@+id/signaturePad"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_weight="5"
        android:background="#FFF"
        android:eventsInterceptionEnabled="true"
        android:fadeEnabled="false"
        android:gestureColor="#000"
        android:gestureStrokeLengthThreshold="0.1"
        android:gestureStrokeType="multiple"
        android:orientation="horizontal">
</android.gesture.GestureOverlayView>
<Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:id="@+id/saveSig"
        android:layout_marginTop="100dp"
        android:onClick="SaveSignature" //click event here
        android:text="Capture"/>
即使使用此设置,
SaveSignature
事件仍会引发致命异常,如下所示:

<Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/capt_sig"
        android:onClick="openCaptureActivity" //click event here
        android:text="@string/capture_signature"
        android:layout_below="@+id/result"
        android:layout_alignParentEnd="true"
        android:layout_marginTop="235dp"
        android:clickable="true"
        android:typeface="sans" />
public void SaveSignature(View v){
    //Do some stuff
}
java.lang.IllegalStateException:找不到方法 在的父或祖先上下文中保存签名(视图) 在视图类上定义的android:onClick属性 id为“saveSig”的android.support.v7.widget.AppCompatButton


我仍然无法理解,即使在
活动
中添加了
单击事件
,为什么会发生此异常。这是因为我从家长处打开
活动的方式吗?这里缺少什么吗?

您需要在
openCaptureActivity()
方法中启动新活动
CaptureSignatureActivity.java
。当前,您正试图在
MainActivity
自身内部对布局进行充气。做

Use different method for clicking button.for example     
btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //do stuff
          }
    });
public void openCaptureActivity(View view){
    startActivity(new Intent(MainActivity.this, CaptureSignatureActivity.class));
}
此方法不会更改您的活动。您仍在
main活动中
。 如果在xml中定义click方法,则必须在
MainActivity
或使用
OnClickListener
中定义该方法

public void openCaptureActivity(View view){
    setContentView(R.layout.activity_capture_signature);
}
请仔细查看
setContentView()此方法用于将布局内容附加/设置到活动。您可能也在
onCreate()
方法中使用了该方法

在您的
活动中\u main.xml

<Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/capt_sig"
        android:onClick="openCaptureActivity" //click event here
        android:text="@string/capture_signature"
        android:layout_below="@+id/result"
        android:layout_alignParentEnd="true"
        android:layout_marginTop="235dp"
        android:clickable="true"
        android:typeface="sans" />
现在您的
CaptureSignatureActivity
应该是这样的

在其
onCreate()
方法中,使用此行通过
setContentView(R.layout.activity\u capture\u签名)设置在上一个活动中使用错误的内容

然后,您可以对CaptureSignatureActivity中的按钮使用第二次单击方法

public void SaveSignature(View v){
    //Do some stuff
}

尝试:构建>清理项目你在Activtiy.java初始化过按钮吗?哦,是的。。我对这件事的理解很低。。谢谢你及时的帮助……)试过这个。。但正如公认的答案所述,这里的问题有所不同:)
public void SaveSignature(View v){
    //Do some stuff
}