Listview 如何通过单击歌曲列表播放歌曲

Listview 如何通过单击歌曲列表播放歌曲,listview,android-mediaplayer,Listview,Android Mediaplayer,我是Android编程新手。我想构建MediaPlayer应用程序 事实上,我以前已经构建了一个简单的MediaPlayer应用程序。我以前的应用程序只有一个按钮播放、一个按钮暂停和一个按钮停止。单击播放按钮时,歌曲将播放 我的新应用程序是使用ListLayout和一些按钮,如播放、暂停和停止,来制作歌曲列表。我想要的是,当我单击歌曲列表中的第一首歌曲时,第一首歌曲将播放 我已经在谷歌做了一些研究,但没有找到我能理解的简单答案。我希望你们能帮助我。非常感谢……) 这是我的更新代码。我不知道如何调

我是Android编程新手。我想构建MediaPlayer应用程序

事实上,我以前已经构建了一个简单的MediaPlayer应用程序。我以前的应用程序只有一个按钮播放、一个按钮暂停和一个按钮停止。单击播放按钮时,歌曲将播放

我的新应用程序是使用ListLayout和一些按钮,如播放、暂停和停止,来制作歌曲列表。我想要的是,当我单击歌曲列表中的第一首歌曲时,第一首歌曲将播放

我已经在谷歌做了一些研究,但没有找到我能理解的简单答案。我希望你们能帮助我。非常感谢……)

这是我的更新代码。我不知道如何调用歌曲列表。我将我的歌曲1、歌曲2、歌曲3存储在原始文件中。但是为了播放歌曲,我只能播放一首歌曲

  package com.example.test7;

  import android.media.MediaPlayer;
  import android.os.Bundle;
  import android.app.Activity;
  import android.view.View;
  import android.widget.AdapterView;
  import android.widget.ArrayAdapter;
  import android.widget.ImageButton;
  import android.widget.ListView;
  import android.widget.Toast;
  import android.widget.AdapterView.OnItemClickListener;

  public class MainActivity extends Activity {

MediaPlayer mp;
int position;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mp = MediaPlayer.create(this,R.raw.song1);

    setContentView(R.layout.activity_main);

    ListView list = (ListView) findViewById(R.id.listView1);
    String[] values = new String[] {"song1","song2","song3","song4","song5",
                                    "song6","song7","song8","song9","song10"};

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, android.R.id.text1, values);

    list.setAdapter(adapter);

    list.setOnItemClickListener(new OnItemClickListener () {
          public void onItemClick(AdapterView<?> parent, View view,
                  int position, long id) {

            ListView list2 = (ListView) findViewById(R.id.listView1);
            String item = (String) list2.getAdapter().getItem(position);
            Toast.makeText(MainActivity.this, item + " selected", 5).show();

            mp.start();
        }
    });

    ImageButton btnPlay = (ImageButton) this.findViewById(R.id.imageButton1);
    ImageButton btnPause = (ImageButton) this.findViewById(R.id.imageButton2);
    ImageButton btnStop = (ImageButton) this.findViewById(R.id.imageButton3);

    btnPlay.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
        if (mp == null) {
                mp = MediaPlayer.create(MainActivity.this, R.raw.song1);

            }
        if (!mp.isPlaying()) {
             mp.start();

           }

        }
    });

    btnPause.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mp != null)
            {
                mp.pause();
                position = mp.getCurrentPosition();
            }

        }
    });

    btnStop.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mp != null)
            {
                if (mp.isPlaying()) {
                    mp.stop();
                }
                mp.release();
                mp = null;
            }
        }
    });
    }
}
package com.example.test7;
导入android.media.MediaPlayer;
导入android.os.Bundle;
导入android.app.Activity;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ImageButton;
导入android.widget.ListView;
导入android.widget.Toast;
导入android.widget.AdapterView.OnItemClickListener;
公共类MainActivity扩展了活动{
MediaPlayer mp;
内部位置;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mp=MediaPlayer.create(this,R.raw.song1);
setContentView(R.layout.activity_main);
ListView列表=(ListView)findViewById(R.id.listView1);
字符串[]值=新字符串[]{“song1”、“song2”、“song3”、“song4”、“song5”,
“song6”、“song7”、“song8”、“song9”、“song10”};
ArrayAdapter=新的ArrayAdapter(MainActivity.this,android.R.layout.simple\u list\u item\u 1,android.R.id.text1,value);
list.setAdapter(适配器);
list.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
ListView list2=(ListView)findViewById(R.id.listView1);
字符串项=(字符串)list2.getAdapter().getItem(位置);
Toast.makeText(MainActivity.this,item+“selected”,5).show();
mp.start();
}
});
ImageButton btnPlay=(ImageButton)this.findViewById(R.id.imageButton1);
ImageButton btnPause=(ImageButton)this.findViewById(R.id.imageButton2);
ImageButton btnStop=(ImageButton)this.findViewById(R.id.imageButton3);
btnPlay.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
if(mp==null){
mp=MediaPlayer.create(MainActivity.this,R.raw.song1);
}
如果(!mp.isPlaying()){
mp.start();
}
}
});
btnPause.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(mp!=null)
{
mp.pause();
位置=mp.getCurrentPosition();
}
}
});
btnStop.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(mp!=null)
{
if(mp.isPlaying()){
mp.stop();
}
mp.release();
mp=null;
}
}
});
}
}

mp.reset();需要在代码中实现。

u可以使用歌曲的最终int值来实现它,该值将出现在r.java中 注: 检查R.java文件中所有歌曲的最终int值

final int[] mid = new int[] {0x7f040000,0x7f040001,0x7f040002,0x7f040003,0x7f040004,0x7f040005};
mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
s=MediaPlayer.create(SimpleListViewActivity.this, mid[position]);
s.start();
}
});
final int[]mid=new int[]{0x7f040000,0x7f040001,0x7f040002,0x7f040003,0x7f040004,0x7f040005};
mainListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
s=MediaPlayer.create(SimpleListViewActivity.this,mid[position]);
s、 start();
}
});

你能给我们看一下你的代码吗?这个问题似乎太模糊了,无法得到有用的答案。我已经发布了我的代码。实际上我不知道如何调用歌曲列表。我应该将歌曲列表存储在哪里。我只能播放一首歌曲,不能播放其他歌曲。。