我已经看到有一些类似的问题,但到目前为止这些答案对我没有帮助.完整的错误:
java.lang.IllegalStateException:无法在父级或祖先中找到方法onClick(View)用于android的onClick属性:在视图类android.support.v7.widget.AppCompatButton上定义的id为'button_random'的onClick属性
该类(StartActivity.java):
public class StartActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
}
public void onClick(View v) {
Log.d("DEBUG", "CLICKED " + v.getId());
}
}
Run Code Online (Sandbox Code Playgroud)
XML(activity_start.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Random Game"
android:id="@+id/button_random"
android:layout_gravity="center_horizontal"
android:onClick="onClick" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我已将活动添加到AndroidManifest.xml.我有类似的活动,以同样的方式工作,我没有任何问题...
有没有人看到我遗失某些东西或犯了错误的东西?
就我而言,我最后错过了右括号。
android:onClick="@{(v) -> CommentHandler.selectGallery(v)"。
It should be like this.
android:onClick="@{(v) -> CommentHandler.selectGallery(v)}".
Run Code Online (Sandbox Code Playgroud)
请重新命名onClick方法比其他任何事情,Android的认为你是在调用内部onClick从View.java通过暴露OnClickListener接口
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Random Game"
android:id="@+id/button_random"
android:layout_gravity="center_horizontal"
android:onClick="myOnClick" />
Run Code Online (Sandbox Code Playgroud)
并在您的活动中
public class StartActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
}
public void myOnClick(View v) {
Log.d("DEBUG", "CLICKED " + v.getId());
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看查看文档
我遇到了同样的问题,就我而言,我将ButtonXML 更改为android.support.v7.widget.AppCompatButton并且它有效。
有错误的代码:
<Button
.... />
Run Code Online (Sandbox Code Playgroud)
固定代码:
<android.support.v7.widget.AppCompatButton
.... />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12734 次 |
| 最近记录: |