为了账号安全,请及时绑定邮箱和手机立即绑定

在android:onClick属性的父级或祖先上下文中找不到方法

在android:onClick属性的父级或祖先上下文中找不到方法

守着一只汪 2021-04-01 09:07:32
我有一个接受点击的图像,当点击时应该打开一个xml布局。这是包含可点击图像的xml文件:<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="wrap_content"    tools:context="com.abcd.myapp.myabcdapp.activities.BeginnersActivity">    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"        xmlns:app="http://schemas.android.com/apk/res-auto"        android:layout_width="match_parent"        android:layout_height="match_parent">        <ImageView            android:id="@+id/imageView1"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:layout_marginEnd="8dp"            android:layout_marginStart="8dp"            android:layout_marginTop="8dp"            android:onClick="openHelp1"            .../>从中可以看到,tools:context我已经包含了BeginnersActivity。这是我所拥有的BeginnersActivity.java:public class BeginnersActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_beginners);        UiHelper.hideSystemBar(this);    }    public void openHelp1(View view) {        Intent i = new Intent(this, Help1Activity.class);        startActivity(i);    }    ...当我单击imageView1应用程序崩溃并在调试模式下时,我看到以下消息:致命例外:mainjava.lang.IllegalStateException:在父级或祖先上下文中找不到android:onClick属性的方法openHelp1(View),该属性是在Android的视图类android.support.v7.widget.AppCompatImageView上标识为“ imageView1”的属性。 support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:423)我有什么想念的或者做错了吗?
查看完整描述

2 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

openHelp1在使用带有属性的xlm文件的同一活动类中,您必须具有“ ”方法android:onClick="openHelp1"

您不能以这种方式从另一个活动中调用方法。


查看完整回答
反对 回复 2021-04-21
?
Helenr

TA贡献1780条经验 获得超3个赞

您可以通过OnClickListener直接设置一个来避免这种情况:


@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_help1);


    ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);


    imageView1.setOnClickListener(new OnClickListener() {

        @Override

        public void onClick(View view) {

            openHelp1(view);

        }

    });

}


查看完整回答
反对 回复 2021-04-21
  • 2 回答
  • 0 关注
  • 234 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信