gpt4 book ai didi

android - Soundboard App 强制关闭,我不明白为什么

转载 作者:行者123 更新时间:2023-11-30 04:29:05 26 4
gpt4 key购买 nike

所以我一直在为我的 child 开发音板应用程序。这是我的第一个应用程序,所以你可以想象我几乎不知道我在做什么(菜鸟)所以我提前道歉 :-)。我不确定我的问题出在哪里,但我的启动画面运行没有问题,但是当它尝试加载下一个 Activity 时,它会强制关闭。我将在我的 list 中包含应该播放音频的 java 文件和可点击图像按钮的布局。提前致谢!我还想将其设置为按钮可以播放随机声音,该声音与使用音池的图像相关,但又带有笨拙。我对错误一点也不熟悉,但我看到 java.land.classcastexception: android.widget.imageview 作为 mymenu Activity 没有启动的原因。希望对您有所帮助。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.pnl.thebasics"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="8" />

<application
android:icon="@drawable/sssicon"
android:label="@string/app_name" >
<activity android:label="@string/app_name" android:name=".myMain">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:label="@string/app_name" android:name=".myMenu">
<intent-filter>
<action android:name="com.pnl.thebasics.CLEARSCREEN" />

<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>



</application>

</manifest>


package com.pnl.thebasics;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;

public class myMenu extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// Hide the title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);
// Go full screen
final Window window = getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.menu);

//these are the buttons that play sounds

//button 1 (sponge bob)
final MediaPlayer mpButtonClick1 = MediaPlayer.create(this, R.raw.sb1);
Button bSpongebob = (Button) findViewById(R.id.sbbutton);
bSpongebob.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
// TODO Auto-generated method stub

mpButtonClick1.start();
}
});
//button 2 (patrick)
final MediaPlayer mpButtonClick2 = MediaPlayer.create(this, R.raw.pat1);
Button bPatrick = (Button) findViewById(R.id.patbutton);
bPatrick.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
// TODO Auto-generated method stub

mpButtonClick2.start();
}
});
}



}


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<ImageView
android:id="@+id/sbbutton"
android:layout_width="wrap_content"
android:layout_height="130dp"
android:layout_weight="50"
android:clickable="true"
android:src="@drawable/sbbuttonimage" />

<ImageView
android:id="@+id/patbutton"
android:layout_width="wrap_content"
android:layout_height="130dp"
android:layout_weight="50"
android:clickable="true"
android:src="@drawable/patbuttonimage" />
</LinearLayout>



<LinearLayout
android:id="@+id/LinearLayout02"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<ImageView
android:id="@+id/mrcrabsbutton"
android:layout_width="wrap_content"
android:layout_height="130dp"
android:layout_weight="50"
android:clickable="true"
android:src="@drawable/mrcrabsbuttonimage" />

<ImageView
android:id="@+id/squidwardbutton"
android:layout_width="wrap_content"
android:layout_height="130dp"
android:layout_weight="50"
android:clickable="true"
android:src="@drawable/squidwardbuttonimage" />
</LinearLayout>

<LinearLayout
android:id="@+id/LinearLayout03"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<ImageView
android:id="@+id/planktonbutton"
android:layout_width="wrap_content"
android:layout_height="130dp"
android:layout_weight="50"
android:clickable="true"
android:src="@drawable/planktonbuttonimage" />

<ImageView
android:id="@+id/garybutton"
android:layout_width="wrap_content"
android:layout_height="130dp"
android:layout_weight="50"
android:clickable="true"
android:src="@drawable/garybuttonimage" />
</LinearLayout>

</LinearLayout>

最佳答案

您的 Java 代码期望在您的布局中找到一个 Button 对象:

Button bSpongebob = (Button) findViewById(R.id.sbbutton);

但是您的布局将小部件声明为 ImageView:

<ImageView
android:id="@+id/sbbutton"

ImageView 不是 Button,当您的 Java 代码试图强制它成为 Button 时,您会得到 java.lang.ClassCastException.

修复的两个选择:

1) 更改您的 Java 代码以使用 ImageView

2) 更改您的布局以声明一个Button

两者都将接受您尝试设置的点击监听器。不要忘记您需要对应用中的两个小部件进行此修复。

关于android - Soundboard App 强制关闭,我不明白为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8029627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com