Beiträge von Solidtorrento

    private ArrayList<File> findAllSong(File file) {

    File[] files = file.listFiles();

    ArrayList<File> songList = new ArrayList<>();

    for (File eachSongFile : files) {
    if (eachSongFile.isDirectory() && !eachSongFile.isHidden()) {
    songList.addAll(findAllSong(eachSongFile));
    } else {
    if (eachSongFile.getName().endsWith(".mp3") || eachSongFile.getName().endsWith(".wav")
    ) {
    songList.add(eachSongFile);
    }
    }


    }
    //songList.remove(0);


    return songList;


    }
    Hallo habe das Problem das Ich hier bei files ein NullPointerException fehler habe. Belasse Ich dies so, stürzt das Programm ab. ändere ich dies zuif (files != null) { for (File eachSongFile : files) {öffnet das Programm aber findet keine Lieder.hm... Bitte um Hilfe
    hier denn gesamten Mainactivity.java

    package com.example.audiomusicplayer;

    import androidx.appcompat.app.AppCompatActivity;
    import androidx.core.app.ActivityCompat;

    import android.Manifest;
    import android.content.Intent;
    import android.content.pm.PackageManager;
    import android.os.Build;
    import android.os.Bundle;
    import android.os.Environment;
    import android.os.FileObserver;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.Toast;

    import java.io.File;
    import java.util.ArrayList;

    public class MainActivity extends AppCompatActivity {

    String songItem[];
    ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    listView=findViewById(R.id.listViewId);

    CheckUserPermsions();


    }


    void CheckUserPermsions() {
    if (Build.VERSION.SDK_INT >= 23) {
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) !=
    PackageManager.PERMISSION_GRANTED) {
    requestPermissions(new String[]{
    Manifest.permission.READ_EXTERNAL_STORAGE},
    REQUEST_CODE_ASK_PERMISSIONS);
    return;
    }
    }

    display(); // init the Gallary Display

    }

    //get acces to location permsion
    final private int REQUEST_CODE_ASK_PERMISSIONS = 123;


    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    switch (requestCode) {
    case REQUEST_CODE_ASK_PERMISSIONS:
    if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
    display(); // // init the Gallary Display
    } else {
    // Permission Denied
    Toast.makeText(this, "permission Denial", Toast.LENGTH_SHORT)
    .show();
    }
    break;
    default:
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
    }


    private ArrayList<File> findAllSong(File file) {

    File[] files = file.listFiles();

    ArrayList<File> songList = new ArrayList<>();

    for (File eachSongFile : files) {
    if (eachSongFile.isDirectory() && !eachSongFile.isHidden()) {
    songList.addAll(findAllSong(eachSongFile));
    } else {
    if (eachSongFile.getName().endsWith(".mp3") || eachSongFile.getName().endsWith(".wav")
    ) {
    songList.add(eachSongFile);
    }
    }


    }
    //songList.remove(0);


    return songList;


    }


    void display() {

    final ArrayList<File> myAllSong = findAllSong(Environment.getExternalStorageDirectory());
    songItem = new String[myAllSong.size()];

    for (int j = 0; j < myAllSong.size(); j++) {
    songItem[j] = myAllSong.get(j).getName().toString()
    .replace(".mp3","").replace(".wav","")
    ;

    // toast(myAllSong.get(j).getName().toString());

    }


    ArrayAdapter<String> arrayAdapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,songItem);
    listView.setAdapter(arrayAdapter);


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


    String songName=listView.getItemAtPosition(position).toString();


    Intent intent=new Intent(MainActivity.this,MyPlayerActivity.class);
    intent.putExtra("mySongName",songName);
    intent.putExtra("songPos",position);
    intent.putExtra("allSong",myAllSong);
    startActivity(intent);


    }
    });
    Toast.makeText(this, "Wähle einen Song!", Toast.LENGTH_LONG).show();


    }


    // public void toast(String text){
    // Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
    // }


    }