[英]Android Studio - image button is crashing after i click on it
I am trying to make some simple image click button to go to another activity but I can't get it to work. 我正在尝试使一些简单的图像单击按钮转到另一项活动,但是我无法使其正常工作。
It says: 它说:
Unfortunately, myapp has stopped.
If I highlighted my android: onClick="myButton"
it says Method myButton' is missing in 'MainActivity' in my layout.xml
如果我突出显示了我的android:
onClick="myButton"
则说Method myButton' is missing in 'MainActivity' in my layout.xml
MainActivity.java MainActivity.java
package com.zemoapps.alarmclockgold;
import android.content.Context;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
//Old code "public class MainActivity extends AppCompatActivity {"
public class MainActivity extends AppCompatActivity {
private Button myButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView myTextview = (TextView) findViewById(R.id.RepeatingText);
TextView myTextview2 = (TextView) findViewById(R.id.CountDownText);
Typeface myCustomFont = Typeface.createFromAsset(getAssets(), "fonts/AndadaRegular.otf");
myTextview.setTypeface(myCustomFont);
myTextview2.setTypeface(myCustomFont);
}
public class MyCustomTextView extends TextView {
public MyCustomTextView(Context context, AttributeSet attrs) {
super(context, attrs);
this.setTypeface(Typeface.createFromAsset(context.getAssets(),
"fonts/AndadaRegular.otf"));
}
}
public class AlarmPage extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myButton = (Button) findViewById(R.id.RepeatingImage);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, AddAlarm.class));
}
});
}
}}
Layout.xml Layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:andriod="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/BG"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#9e84d3"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.zemoapps.onething.MainActivity">
<ImageButton
android:id="@+id/RepeatingImage"
android:layout_width="200dp"
android:layout_height="150dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="#00000000"
android:contentDescription="@null"
android:onClick="myButton"
android:scaleType="fitCenter"
android:src="@drawable/alarm1" />
</RelativeLayout>
AndroidManifest
says there is error too: AndroidManifest
说也有错误:
java.lang.IllegalStateException: Could not find method myButton(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatImageButton with id 'RepeatingImage'
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:307)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:266)
at android.view.View.performClick(View.java:4084)
at android.view.View$PerformClick.run(View.java:16966)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Remove android:onClick="myButton" from ImageButton in your XML. 从XML中的ImageButton中删除android:onClick =“ myButton”。
<ImageButton
android:id="@+id/RepeatingImage"
android:layout_width="200dp"
android:layout_height="150dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="#00000000"
android:contentDescription="@null"
android:onClick="myButton" // remove this line from your xml
android:scaleType="fitCenter"
android:src="@drawable/alarm1" />
This is because you have extended AppCompatActivity. 这是因为您扩展了AppCompatActivity。 It will work fine if you extend Activity.
如果您扩展“活动”,它将正常工作。
You didn't define method for imagebutton click,you should add it to MainActivity
like this: 您尚未定义imagebutton单击的方法,应将其添加到
MainActivity
如下所示:
public void myButton(View view){
}
Remove the next row from you ImageButton node: 从ImageButton节点中删除下一行:
android:onClick="myButton"
When you add it, Android will expect a method named "myButton" in your Activity. 当您添加它时,Android将在您的Activity中使用一个名为“ myButton”的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.