我有一个接受点击的图像,当点击时应该打开一个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"
您不能以这种方式从另一个活动中调用方法。
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);
}
});
}
添加回答
举报
0/150
提交
取消