0

私はアンドロイドを初めて使用し、メディアプレーヤーアプリを作成しましたが、再生を開始すると、「残念ながらアプリが停止しました」というエラーで突然停止します。 アプリを修正するにはどうすればよいですか?

Plsはここにコードがあります:

package com.example.allah;


import java.util.ArrayList;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
final ListView listview = (ListView) findViewById(R.id.listView1);
String[] values = new String[] { "Allah1", "Allah2" };
final ArrayList<String> list = new ArrayList<String>();

for (int i = 0; i < values.length; ++i) {
list.add(values[i]);
}
listview.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list));
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    long arg3) {
myplaymethod();

}
});
}
public void myplaymethod(){
int myKey = 0;
View play_button = null;
switch (myKey) {
case 1:
    MediaPlayer my = MediaPlayer.create(getBaseContext(), R.raw.allah1);
    my.start();
    play_button.setVisibility(View.GONE);
    break;

case 2:
    MediaPlayer ma = MediaPlayer.create(getBaseContext(), R.raw.allah2);
    ma.start();
    play_button.setVisibility(View.GONE);
    break;

}


}
4

1 に答える 1

0

あなたの mKey 値は 0 で、 switch に 0 を取るケースはありません。このようにします

mplayermethod() で 2 つのケースしか作成していないため、リストには 2 つの曲しかないと思います。

内部listview.setOnItemClickListenerで mplayermethod() を mplayermethod(arg2) に置き換えます

そして mplayermethod() で

public void myplaymethod(int mKey){

View play_button = null;
switch (myKey) {
case 0:
MediaPlayer my = MediaPlayer.create(getBaseContext(), R.raw.allah1);
my.start();
play_button.setVisibility(View.GONE);
break;

case 1:
MediaPlayer ma = MediaPlayer.create(getBaseContext(), R.raw.allah2);
ma.start();
play_button.setVisibility(View.GONE);
break;

}
于 2013-10-14T13:57:00.643 に答える