小编Wil*_*sau的帖子

布局中定义的Android EditText onClick Listener失败,显示异常

我想在可能活动的Layout-XML中为EditText定义一个onClick侦听器,但它始终以一个模糊的异常失败.

布局setContentView()onCreate我的活动的-Method中注入.我没有在这里使用Fragment,我很清楚XML定义的onClickListener不适用于片段.

出于测试目的,我将相同的处理程序方法添加到位于EditText旁边的ImageView.处理程序工作,在EditText上失败.所以这是EditText的特殊之处,而不是错位处理程序方法的一般问题.

这是我的布局文件的相关部分:

<ImageView
     android:layout_gravity="center_horizontal|top"
     android:layout_rowSpan="3"
     android:src="@drawable/ic_action_event"
     android:onClick="onCreationClicked"
     />

<EditText
     android:id="@+id/creation_edit"
     android:focusable="false"
     android:clickable="true"
     android:layout_gravity="fill_horizontal"
     android:hint="@string/enter_creation"
     android:onClick="onCreationClicked"
     style="@style/PickerEditText"
     />
Run Code Online (Sandbox Code Playgroud)

当我单击ImageView时,将执行关联的方法并启动DialogFragment.当我点击EditText时,我得到以下异常:

    java.lang.IllegalStateException: Could not find a method onCreationClicked(View) in the activity class android.support.v7.internal.widget.TintContextWrapper for onClick handler on view class android.support.v7.widget.AppCompatEditText with id 'creation_edit'
            at android.view.View$1.onClick(View.java:3994)
            at android.view.View.performClick(View.java:4756)
            at android.view.View$PerformClick.run(View.java:19749)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: java.lang.NoSuchMethodException: onCreationClicked [class android.view.View]
            at …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-edittext android-event

6
推荐指数
1
解决办法
3129
查看次数