通过Spinner和Play选择音乐

时间:2015-03-01 18:27:52

标签: java android xml

我想要做的是添加一个微调器和一个按钮,当我选择了一首它播放的歌曲并且与其他歌曲相同时,在微调器中放置2首歌曲但是当我运行这段代码时它只会显示一个微调器和按钮,我只选择一首歌,当我点击播放按钮时,它没有响应。

import android.media.MediaPlayer;    
import android.support.v7.app.ActionBarActivity;    
import android.os.Bundle;    
import android.view.Menu;    
import android.view.MenuItem;    
import android.view.View;    
import android.widget.AdapterView;    
import android.widget.ArrayAdapter;    
import android.widget.Button;    
import android.widget.Spinner;    
import android.widget.Toast;    


public class MainActivity extends ActionBarActivity {    
public int soundSelection;    
MediaPlayer mp;    
Button btn;    
@Override    
protected void onCreate(Bundle savedInstanceState) {    
    super.onCreate(savedInstanceState);    
    setContentView(R.layout.activity_main);    
    Spinner spinner = (Spinner) findViewById(R.id.spinner1);    
    btn=(Button)findViewById(R.id.button1);    
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.soundEntries, android.R.layout.simple_spinner_item);    
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);    
    spinner.setAdapter(adapter);    
    btn.setOnClickListener(new View.OnClickListener() {    
        @Override    
        public void onClick(View v) {    
            switch (soundSelection) {    
                case 1:    
                   if (mp != null && mp.isPlaying())    

                    mp = MediaPlayer.create(MainActivity.this, R.raw.bewafa);    
                    mp.start();    
                    mp.setVolume(100,100);    
                    mp.setLooping(true);    
                    Toast t = Toast.makeText(MainActivity.this,"bewafa",Toast.LENGTH_LONG);
                    t.show();    
                    break;    
                case 2:    
                    // if(mp.isPlaying())    

                    mp = MediaPlayer.create(getApplicationContext(), R.raw.dildobaa);    
                    mp.start();    
                    Toast th = Toast.makeText(getApplicationContext(), "dildobaa", Toast.LENGTH_LONG);    
                    th.show();    
                    break;

            }   
        }   
    });    
}    






/*Spinner Functions*/
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)     
    soundSelection=(Integer)parent.getItemAtPosition(pos);    
}    

public void onNothingSelected(AdapterView<?> parent) {    
    // Do nothing.    
}    

@Override    
public boolean onCreateOptionsMenu(Menu menu) {    
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);    
    return true;    
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {    
    // Handle action bar item clicks here. The action bar will    
    // automatically handle clicks on the Home/Up button, so long    
    // as you specify a parent activity in AndroidManifest.xml.    
    int id = item.getItemId();    

    //noinspection SimplifiableIfStatement    
    if (id == R.id.action_settings) {    
        return true;    
    }    

    return super.onOptionsItemSelected(item);    
}    

} 这是Xml代码:

   <LinearLayout    
      xmlns:android="http://schemas.android.com/apk/res/android"    
      xmlns:tools="http://schemas.android.com/tools"    
      android:layout_width="match_parent"    
      android:layout_height="match_parent"   
      android:paddingLeft="@dimen/activity_horizontal_margin"    
      android:paddingRight="@dimen/activity_horizontal_margin"    
      android:paddingTop="@dimen/activity_vertical_margin"    
      android:orientation="vertical"    
      android:paddingBottom="@dimen/activity_vertical_margin"   

      tools:context=".MainActivity">    
<Spinner
    android:layout_width="wrap_content"
    android:entries="@array/soundEntries"
    android:layout_height="wrap_content"
    android:id="@+id/spinner1">

    </Spinner>
    <Button
        android:layout_width="wrap_content"
       android:text="Play"

       android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:id="@+id/button1" />

这是Strings.xml:     

<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="app_name">Test</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string-array name="soundEntries">
    <item>bewafa</item>
    <item>dildobaa</item>

</string-array>

1 个答案:

答案 0 :(得分:0)

对您的代码进行以下更改:

实施AdapterView.OnItemSelectedListener

public class MainActivity extends ActionBarActivity implements AdapterView.OnItemSelectedListener {

将开关案例更改为0和1.(计数从0开始)

注释掉这一行:if (mp != null && mp.isPlaying())

onItemSelected()回调方法更改为:

public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
    soundSelection = pos;
}
相关问题