Java 从教程源导入项目导致R中的结果无法解析为变量

Java 从教程源导入项目导致R中的结果无法解析为变量,java,android,eclipse,r.java-file,Java,Android,Eclipse,R.java File,我不确定为什么,但当我试图导入这个项目,我最终与R不能解决一个变量错误之前,甚至编辑项目。我发现很难相信作者会发布一个不可编译的源代码示例——这可能是我这边的事情,也许是eclipse 资料来源: public class MyMediaPlayerActivity extends Activity { WakeLock wakeLock; private static final String[] EXTENSIONS = { ".mp3", ".mid", ".wav",

我不确定为什么,但当我试图导入这个项目,我最终与R不能解决一个变量错误之前,甚至编辑项目。我发现很难相信作者会发布一个不可编译的源代码示例——这可能是我这边的事情,也许是eclipse

资料来源:

public class MyMediaPlayerActivity extends Activity {
    WakeLock wakeLock;
    private static final String[] EXTENSIONS = { ".mp3", ".mid", ".wav", ".ogg", ".mp4" }; //Playable Extensions
    List<String> trackNames; //Playable Track Titles
    List<String> trackArtworks; //Track artwork names
    AssetManager assets; //Assets (Compiled with APK)
    File path; //directory where music is loaded from on SD Card
    File path2; //directory where album artwork is loaded from on SD Card
    Music track; //currently loaded track
    ImageView bg; //Track artwork
    Button btnPlay; //The play button will need to change from 'play' to 'pause', so we need an instance of it
    Random random; //used for shuffle
    boolean shuffle; //is shuffle mode on?
    boolean isTuning; //is user currently jammin out, if so automatically start playing the next track
    int currentTrack; //index of current track selected
    int type; //0 for loading from assets, 1 for loading from SD card

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
        PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
        wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "Lexiconda");
        setContentView(R.layout.main);

        initialize(0);
    }

    @Override
    public void onResume(){
        super.onResume();
        wakeLock.acquire();
    }

    @Override
    public void onPause(){
        super.onPause();
        wakeLock.release();
        if(track != null){
            if(track.isPlaying()){
                track.pause();
                isTuning = false;
                btnPlay.setBackgroundResource(R.drawable.play);
            }
            if(isFinishing()){
                track.dispose();
                finish();
            }
        } else{
            if(isFinishing()){
                finish();
            }
        }
    }

    private void initialize(int type){
        bg = (ImageView) findViewById(R.id.bg);
        btnPlay = (Button) findViewById(R.id.btnPlay);
        btnPlay.setBackgroundResource(R.drawable.play);
        trackNames = new ArrayList<String>();
        trackArtworks = new ArrayList<String>();
        assets = getAssets();
        currentTrack = 0;
        shuffle = false;
        isTuning = false;
        random = new Random();
        this.type = type;

        addTracks(getTracks());
        loadTrack();
    }

    //Generate a String Array that represents all of the files found
    private String[] getTracks(){
        if(type == 0){
            try {
                String[] temp = getAssets().list("");
                return temp;
            } catch (IOException e) {
                e.printStackTrace();
                Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show();
            }
        } else if(type == 1){
            if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) 
                    || Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED_READ_ONLY)){
                path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);
                path2 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
                String[] temp = path.list();
                return temp;
            } else{
                Toast.makeText(getBaseContext(), "SD Card is either mounted elsewhere or is unusable", Toast.LENGTH_LONG).show();
            }
        }
        return null;
    }

    //Adds the playable files to the trackNames List
    private void addTracks(String[] temp){
        if(temp != null){
            for(int i = 0; i < temp.length; i++){
                //Only accept files that have one of the extensions in the EXTENSIONS array
                if(trackChecker(temp[i])){
                    trackNames.add(temp[i]);
                    trackArtworks.add(temp[i].substring(0, temp[i].length()-4));
                }
            }
            Toast.makeText(getBaseContext(), "Loaded " + Integer.toString(trackNames.size()) + " Tracks", Toast.LENGTH_SHORT).show();
        }
    }

    //Checks to make sure that the track to be loaded has a correct extenson
    private boolean trackChecker(String trackToTest){
        for(int j = 0; j < EXTENSIONS.length; j++){
            if(trackToTest.contains(EXTENSIONS[j])){
                return true;
            }
        }
        return false;
    }

    //Loads the track by calling loadMusic
    private void loadTrack(){
        if(track != null){
            track.dispose();
        }
        if(trackNames.size() > 0){
            track = loadMusic(type);
            setImage("drawable/" + trackArtworks.get(currentTrack));
        }
    }

    //loads a Music instance using either a built in asset or an external resource
    private Music loadMusic(int type){
        switch(type){
        case 0:
            try{
                AssetFileDescriptor assetDescriptor = assets.openFd(trackNames.get(currentTrack));
                return new Music(assetDescriptor);
            } catch(IOException e){
                e.printStackTrace();
                Toast.makeText(getBaseContext(), "Error Loading " + trackNames.get(currentTrack), Toast.LENGTH_LONG).show();
            }
            return null;
        case 1:
            try{
                FileInputStream fis = new FileInputStream(new File(path, trackNames.get(currentTrack)));
                FileDescriptor fileDescriptor = fis.getFD();
                return new Music(fileDescriptor);
            } catch(IOException e){
                e.printStackTrace();
                Toast.makeText(getBaseContext(), "Error Loading " + trackNames.get(currentTrack), Toast.LENGTH_LONG).show();
            }
            return null;
        default:
            return null;
        }
    }

    //Sets the background image to match the track currently playing or a default image
    private void setImage(String name) {
        if(type == 0){
            int imageResource = getResources().getIdentifier(name, null, getPackageName());
            if(imageResource != 0){
                Drawable image = getResources().getDrawable(imageResource);
                bg.setImageDrawable(image);
            } else{
                int defaultImageResource = getResources().getIdentifier("drawable/defaultbg", null, getPackageName());
                if(defaultImageResource != 0){
                    Drawable image = getResources().getDrawable(defaultImageResource);
                    bg.setImageDrawable(image);
                }
            }
        } else if(type == 1){
            if(new File(path2.getAbsolutePath(), trackArtworks.get(currentTrack) + ".jpg").exists()){
                bg.setImageDrawable(Drawable.createFromPath(path2.getAbsolutePath() + "/" + trackArtworks.get(currentTrack) + ".jpg"));
            } else{
                int defaultImageResource = getResources().getIdentifier("drawable/defaultbg", null, getPackageName());
                if(defaultImageResource != 0){
                    Drawable image = getResources().getDrawable(defaultImageResource);
                    bg.setImageDrawable(image);
                }
            }
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        super.onCreateOptionsMenu(menu);
        createMenu(menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        switch(item.getItemId()){
        case 0:
            //Set Looping
            synchronized(this){
                if(track.isLooping()){
                    track.setLooping(false);
                    Toast.makeText(getBaseContext(), "Playing Tracks Sequentially", Toast.LENGTH_SHORT).show();
                } else{
                    track.setLooping(true);
                    Toast.makeText(getBaseContext(), "Looping " + trackNames.get(currentTrack), Toast.LENGTH_SHORT).show();
                }
            }
            return true;
        case 1:
            //Set Shuffle
            synchronized(this){
                if(shuffle){
                    setShuffle(false);
                } else{
                    setShuffle(true);
                }
            }
            return true;
        case 2:
            //Stop Music
            synchronized(this){
                track.switchTracks();
                btnPlay.setBackgroundResource(R.drawable.play);
            }
            return true;
        case 3:
            //Change Source from Assets to SD Card and vice versa
            synchronized(this){
                type++;
                if(type > 1){
                    type = 0;
                }
            }
            if(type == 0){
                Toast.makeText(getBaseContext(), "Loading Tracks from Assets ", Toast.LENGTH_SHORT).show();
            } else if(type == 1){
                Toast.makeText(getBaseContext(), "Loading Tracks from SD Card", Toast.LENGTH_SHORT).show();
            }
            initialize(type);
            return true;
        default:
            return false;
        }
    }

    private void createMenu(Menu menu){
        MenuItem miLooping = menu.add(0, 0, 0, "Looping");{
            miLooping.setIcon(R.drawable.looping);
        }
        MenuItem miShuffle = menu.add(0, 1, 1, "Shuffle");{
            miShuffle.setIcon(R.drawable.shuffle);
        }
        MenuItem miStop = menu.add(0, 2, 2, "Stop");{
            miStop.setIcon(R.drawable.stop);
        }
        MenuItem miSource = menu.add(0, 3, 3, "Source");{
            miSource.setIcon(R.drawable.source);
        }
    }

    public void click(View view){
        int id = view.getId();
        switch(id){
        case R.id.btnPlay:
            synchronized(this){
                if(isTuning){
                    isTuning = false;
                    btnPlay.setBackgroundResource(R.drawable.play);
                    track.pause();
                } else{
                    isTuning = true;
                    btnPlay.setBackgroundResource(R.drawable.pause);
                    playTrack();
                }
            }
            return;
        case R.id.btnPrevious:
            setTrack(0);
            loadTrack();
            playTrack();
            return;
        case R.id.btnNext:
            setTrack(1);
            loadTrack();
            playTrack();
            return;
        default:
            return;
        }
    }

    private void setTrack(int direction){
        if(direction == 0){
            currentTrack--;
            if(currentTrack < 0){
                currentTrack = trackNames.size()-1;
            }
        } else if(direction == 1){
            currentTrack++;
            if(currentTrack > trackNames.size()-1){
                currentTrack = 0;
            }
        }
        if(shuffle){
            int temp = random.nextInt(trackNames.size());
            while(true){
                if(temp != currentTrack){
                    currentTrack = temp;
                    break;
                }
                temp++;
                if(temp > trackNames.size()-1){
                    temp = 0;
                }
            }
        }
    }

    //Plays the Track
    private void playTrack(){
        if(isTuning && track != null){
            track.play();
            Toast.makeText(getBaseContext(), "Playing " + trackNames.get(currentTrack).substring(0, trackNames.get(currentTrack).length()-4), Toast.LENGTH_SHORT).show();
        }
    }

    //Simply sets shuffle to isShuffle and then displays a message for confirmation
    private void setShuffle(boolean isShuffle) {
        shuffle = isShuffle;
        if(shuffle){
            Toast.makeText(getBaseContext(), "Shuffle On", Toast.LENGTH_SHORT).show();
        } else{
            Toast.makeText(getBaseContext(), "Shuffle Off", Toast.LENGTH_SHORT).show();
        }
    }

}
公共类MyMediaPlayerActivity扩展活动{
WakeLock WakeLock;
私有静态最终字符串[]扩展={.mp3“,.mid“,.wav“,.ogg“,.mp4”};//可播放扩展
列出曲目名称;//可播放的曲目标题
列出trackArtworks;//跟踪艺术品名称
AssetManager资产;//资产(使用APK编译)
文件路径;//从SD卡上加载音乐的目录
文件路径2;//从SD卡上加载相册插图的目录
音乐曲目;//当前加载的曲目
ImageView bg;//跟踪艺术品
Button btnPlay;//播放按钮需要从“播放”更改为“暂停”,因此我们需要它的一个实例
Random Random;//用于洗牌
布尔洗牌;//洗牌模式打开了吗?
boolean isTuning;//用户当前是否已退出,如果是,则自动开始播放下一首曲目
int currentTrack;//所选当前轨迹的索引
int type;//0表示从资产加载,1表示从SD卡加载
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(窗口。功能\u无\u标题);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,WindowManager.LayoutParams.FLAG_全屏);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
PowerManager PowerManager=(PowerManager)getSystemService(Context.POWER\u服务);
wakeLock=powerManager.newWakeLock(powerManager.FULL_WAKE_LOCK,“Lexiconda”);
setContentView(R.layout.main);
初始化(0);
}
@凌驾
恢复时公开作废(){
super.onResume();
wakeLock.acquire();
}
@凌驾
公共无效暂停(){
super.onPause();
wakeLock.release();
如果(磁道!=null){
if(track.isPlaying()){
track.pause();
isTuning=假;
btnPlay.setBackgroundResource(R.drawable.play);
}
if(isFinishing()){
track.dispose();
完成();
}
}否则{
if(isFinishing()){
完成();
}
}
}
私有void初始化(int类型){
bg=(ImageView)findViewById(R.id.bg);
btnPlay=(按钮)findViewById(R.id.btnPlay);
btnPlay.setBackgroundResource(R.drawable.play);
trackNames=newarraylist();
trackArtworks=新的ArrayList();
assets=getAssets();
currentTrack=0;
shuffle=false;
isTuning=假;
随机=新随机();
this.type=type;
addTracks(getTracks());
loadTrack();
}
//生成表示找到的所有文件的字符串数组
私有字符串[]getTracks(){
如果(类型==0){
试一试{
字符串[]temp=getAssets().list(“”);
返回温度;
}捕获(IOE异常){
e、 printStackTrace();
Toast.makeText(getBaseContext(),e.getMessage(),Toast.LENGTH_LONG.show();
}
}else if(类型==1){
if(Environment.getExternalStorageState().equals(Environment.MEDIA_-MOUNTED)
||Environment.getExternalStorageState().equals(Environment.MEDIA\u MOUNTED\u READ\u)){
path=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY\u MUSIC);
path2=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY\u图片);
字符串[]temp=path.list();
返回温度;
}否则{
Toast.makeText(getBaseContext(),“SD卡要么挂载在别处,要么不可用”,Toast.LENGTH_LONG.show();
}
}
返回null;
}
//将可播放的文件添加到“轨迹名”列表中
私有void addTracks(字符串[]临时){
如果(温度!=null){
对于(int i=0;i0){
曲目=加载音乐(类型);
setImage(“drawable/”+trackArtworks.get(currentTrack));
}
}
//使用内置资源或外部资源加载音乐实例
私人音乐加载音乐(int型){
开关(类型){
案例0:
试一试{
AssetFileDescriptor assetDescriptor=assets.openFd(trackNames.get(currentTrack));
返回新音乐(assetDescriptor);
}捕获(IOE异常){
e、 printStackTrace();
Toast.makeText(getBaseContext(),“错误加载”+trackNames.get(currentTrack),Toast.LENGTH_LONG.show();
}
返回null;
public class MyMediaPlayerActivity extends Activity {
    WakeLock wakeLock;
    private static final String[] EXTENSIONS = { ".mp3", ".mid", ".wav", ".ogg", ".mp4" }; //Playable Extensions
    List<String> trackNames; //Playable Track Titles
    List<String> trackArtworks; //Track artwork names
    AssetManager assets; //Assets (Compiled with APK)
    File path; //directory where music is loaded from on SD Card
    File path2; //directory where album artwork is loaded from on SD Card
    Music track; //currently loaded track
    ImageView bg; //Track artwork
    Button btnPlay; //The play button will need to change from 'play' to 'pause', so we need an instance of it
    Random random; //used for shuffle
    boolean shuffle; //is shuffle mode on?
    boolean isTuning; //is user currently jammin out, if so automatically start playing the next track
    int currentTrack; //index of current track selected
    int type; //0 for loading from assets, 1 for loading from SD card

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
        PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
        wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "Lexiconda");
        setContentView(R.layout.main);

        initialize(0);
    }

    @Override
    public void onResume(){
        super.onResume();
        wakeLock.acquire();
    }

    @Override
    public void onPause(){
        super.onPause();
        wakeLock.release();
        if(track != null){
            if(track.isPlaying()){
                track.pause();
                isTuning = false;
                btnPlay.setBackgroundResource(R.drawable.play);
            }
            if(isFinishing()){
                track.dispose();
                finish();
            }
        } else{
            if(isFinishing()){
                finish();
            }
        }
    }

    private void initialize(int type){
        bg = (ImageView) findViewById(R.id.bg);
        btnPlay = (Button) findViewById(R.id.btnPlay);
        btnPlay.setBackgroundResource(R.drawable.play);
        trackNames = new ArrayList<String>();
        trackArtworks = new ArrayList<String>();
        assets = getAssets();
        currentTrack = 0;
        shuffle = false;
        isTuning = false;
        random = new Random();
        this.type = type;

        addTracks(getTracks());
        loadTrack();
    }

    //Generate a String Array that represents all of the files found
    private String[] getTracks(){
        if(type == 0){
            try {
                String[] temp = getAssets().list("");
                return temp;
            } catch (IOException e) {
                e.printStackTrace();
                Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show();
            }
        } else if(type == 1){
            if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) 
                    || Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED_READ_ONLY)){
                path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);
                path2 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
                String[] temp = path.list();
                return temp;
            } else{
                Toast.makeText(getBaseContext(), "SD Card is either mounted elsewhere or is unusable", Toast.LENGTH_LONG).show();
            }
        }
        return null;
    }

    //Adds the playable files to the trackNames List
    private void addTracks(String[] temp){
        if(temp != null){
            for(int i = 0; i < temp.length; i++){
                //Only accept files that have one of the extensions in the EXTENSIONS array
                if(trackChecker(temp[i])){
                    trackNames.add(temp[i]);
                    trackArtworks.add(temp[i].substring(0, temp[i].length()-4));
                }
            }
            Toast.makeText(getBaseContext(), "Loaded " + Integer.toString(trackNames.size()) + " Tracks", Toast.LENGTH_SHORT).show();
        }
    }

    //Checks to make sure that the track to be loaded has a correct extenson
    private boolean trackChecker(String trackToTest){
        for(int j = 0; j < EXTENSIONS.length; j++){
            if(trackToTest.contains(EXTENSIONS[j])){
                return true;
            }
        }
        return false;
    }

    //Loads the track by calling loadMusic
    private void loadTrack(){
        if(track != null){
            track.dispose();
        }
        if(trackNames.size() > 0){
            track = loadMusic(type);
            setImage("drawable/" + trackArtworks.get(currentTrack));
        }
    }

    //loads a Music instance using either a built in asset or an external resource
    private Music loadMusic(int type){
        switch(type){
        case 0:
            try{
                AssetFileDescriptor assetDescriptor = assets.openFd(trackNames.get(currentTrack));
                return new Music(assetDescriptor);
            } catch(IOException e){
                e.printStackTrace();
                Toast.makeText(getBaseContext(), "Error Loading " + trackNames.get(currentTrack), Toast.LENGTH_LONG).show();
            }
            return null;
        case 1:
            try{
                FileInputStream fis = new FileInputStream(new File(path, trackNames.get(currentTrack)));
                FileDescriptor fileDescriptor = fis.getFD();
                return new Music(fileDescriptor);
            } catch(IOException e){
                e.printStackTrace();
                Toast.makeText(getBaseContext(), "Error Loading " + trackNames.get(currentTrack), Toast.LENGTH_LONG).show();
            }
            return null;
        default:
            return null;
        }
    }

    //Sets the background image to match the track currently playing or a default image
    private void setImage(String name) {
        if(type == 0){
            int imageResource = getResources().getIdentifier(name, null, getPackageName());
            if(imageResource != 0){
                Drawable image = getResources().getDrawable(imageResource);
                bg.setImageDrawable(image);
            } else{
                int defaultImageResource = getResources().getIdentifier("drawable/defaultbg", null, getPackageName());
                if(defaultImageResource != 0){
                    Drawable image = getResources().getDrawable(defaultImageResource);
                    bg.setImageDrawable(image);
                }
            }
        } else if(type == 1){
            if(new File(path2.getAbsolutePath(), trackArtworks.get(currentTrack) + ".jpg").exists()){
                bg.setImageDrawable(Drawable.createFromPath(path2.getAbsolutePath() + "/" + trackArtworks.get(currentTrack) + ".jpg"));
            } else{
                int defaultImageResource = getResources().getIdentifier("drawable/defaultbg", null, getPackageName());
                if(defaultImageResource != 0){
                    Drawable image = getResources().getDrawable(defaultImageResource);
                    bg.setImageDrawable(image);
                }
            }
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        super.onCreateOptionsMenu(menu);
        createMenu(menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        switch(item.getItemId()){
        case 0:
            //Set Looping
            synchronized(this){
                if(track.isLooping()){
                    track.setLooping(false);
                    Toast.makeText(getBaseContext(), "Playing Tracks Sequentially", Toast.LENGTH_SHORT).show();
                } else{
                    track.setLooping(true);
                    Toast.makeText(getBaseContext(), "Looping " + trackNames.get(currentTrack), Toast.LENGTH_SHORT).show();
                }
            }
            return true;
        case 1:
            //Set Shuffle
            synchronized(this){
                if(shuffle){
                    setShuffle(false);
                } else{
                    setShuffle(true);
                }
            }
            return true;
        case 2:
            //Stop Music
            synchronized(this){
                track.switchTracks();
                btnPlay.setBackgroundResource(R.drawable.play);
            }
            return true;
        case 3:
            //Change Source from Assets to SD Card and vice versa
            synchronized(this){
                type++;
                if(type > 1){
                    type = 0;
                }
            }
            if(type == 0){
                Toast.makeText(getBaseContext(), "Loading Tracks from Assets ", Toast.LENGTH_SHORT).show();
            } else if(type == 1){
                Toast.makeText(getBaseContext(), "Loading Tracks from SD Card", Toast.LENGTH_SHORT).show();
            }
            initialize(type);
            return true;
        default:
            return false;
        }
    }

    private void createMenu(Menu menu){
        MenuItem miLooping = menu.add(0, 0, 0, "Looping");{
            miLooping.setIcon(R.drawable.looping);
        }
        MenuItem miShuffle = menu.add(0, 1, 1, "Shuffle");{
            miShuffle.setIcon(R.drawable.shuffle);
        }
        MenuItem miStop = menu.add(0, 2, 2, "Stop");{
            miStop.setIcon(R.drawable.stop);
        }
        MenuItem miSource = menu.add(0, 3, 3, "Source");{
            miSource.setIcon(R.drawable.source);
        }
    }

    public void click(View view){
        int id = view.getId();
        switch(id){
        case R.id.btnPlay:
            synchronized(this){
                if(isTuning){
                    isTuning = false;
                    btnPlay.setBackgroundResource(R.drawable.play);
                    track.pause();
                } else{
                    isTuning = true;
                    btnPlay.setBackgroundResource(R.drawable.pause);
                    playTrack();
                }
            }
            return;
        case R.id.btnPrevious:
            setTrack(0);
            loadTrack();
            playTrack();
            return;
        case R.id.btnNext:
            setTrack(1);
            loadTrack();
            playTrack();
            return;
        default:
            return;
        }
    }

    private void setTrack(int direction){
        if(direction == 0){
            currentTrack--;
            if(currentTrack < 0){
                currentTrack = trackNames.size()-1;
            }
        } else if(direction == 1){
            currentTrack++;
            if(currentTrack > trackNames.size()-1){
                currentTrack = 0;
            }
        }
        if(shuffle){
            int temp = random.nextInt(trackNames.size());
            while(true){
                if(temp != currentTrack){
                    currentTrack = temp;
                    break;
                }
                temp++;
                if(temp > trackNames.size()-1){
                    temp = 0;
                }
            }
        }
    }

    //Plays the Track
    private void playTrack(){
        if(isTuning && track != null){
            track.play();
            Toast.makeText(getBaseContext(), "Playing " + trackNames.get(currentTrack).substring(0, trackNames.get(currentTrack).length()-4), Toast.LENGTH_SHORT).show();
        }
    }

    //Simply sets shuffle to isShuffle and then displays a message for confirmation
    private void setShuffle(boolean isShuffle) {
        shuffle = isShuffle;
        if(shuffle){
            Toast.makeText(getBaseContext(), "Shuffle On", Toast.LENGTH_SHORT).show();
        } else{
            Toast.makeText(getBaseContext(), "Shuffle Off", Toast.LENGTH_SHORT).show();
        }
    }

}