在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
答案 0 :(得分:0)
我看到的第一件事是你错过了以下
Button button = findViewById(R.id.button);
答案 1 :(得分:0)
我们需要更多细节来回答问题的准确答案。虽然could not execute method for android onclick
之类的错误经常因为方法的主体而发生。因此,getResourceEntryName()
或getIdentifier()
电话是这种情况的潜在原因。请调试并查看通过调用传递的值。否则发布更多信息以获得更好的帮助