为什么有onclick错误?

时间:2018-02-25 22:32:45

标签: android onclick

在android studio中,我有onclick错误。我的代码如下,MainActivity.java如下:

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public void speakEnglish(View view) {

    int id = view.getId();
    String ourId = "";

    ourId = view.getResources().getResourceEntryName(id);

    String packageName = getPackageName();

    int resourceId = getResources().getIdentifier(ourId, "raw", packageName);

    MediaPlayer mplayer = MediaPlayer.create(this, resourceId);
    mplayer.start();


}

}

activity_main.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="match_parent"
tools:context="com.project.qinxin.learn.MainActivity">
<GridLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true">

    <Button
        android:id="@+id/btn_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_columnWeight="1"
        android:layout_gravity="fill"
        android:layout_row="0"
        android:layout_rowWeight="1"
        android:onClick="speakEnglish"
        android:text="Button1" />
    <Button
        android:id="@+id/btn_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_row="0"
        android:layout_gravity="fill"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:onClick="speakEnglish"
        android:text="Button2"
        />

</GridLayout>

我找不到代码的问题,似乎函数getRescources()和MainActivity都是问题所在。错误信息在这里。当我点击按钮时,此应用程序将停止。 CLLocation

2 个答案:

答案 0 :(得分:0)

我看到的第一件事是你错过了以下

Button button = findViewById(R.id.button);

答案 1 :(得分:0)

我们需要更多细节来回答问题的准确答案。虽然could not execute method for android onclick之类的错误经常因为方法的主体而发生。因此,getResourceEntryName()getIdentifier()电话是这种情况的潜在原因。请调试并查看通过调用传递的值。否则发布更多信息以获得更好的帮助