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
}