我想做一个媒体播放器,它总是抛出nullpointerexception。我在这一点上被困住了,这是我的代码:

package MRT.MRT.MRT0012;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.view.Menu;
import android.view.MenuItem;
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.io.IOException;


public class MainActivity extends Activity {
    Handler handler=new Handler();
    MediaPlayer mediaPlayer=new MediaPlayer();
    ListView listView;
    Runnable exit=new Runnable() {
        @Override
        public void run() {
            backdoublepressed=false;
        }
    };
    boolean backdoublepressed=false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.activity_main);
        super.onCreate(savedInstanceState);
        listView=findViewById(R.id.list);
        File file=new File(Environment.getExternalStorageDirectory()+"/Musics");
        File[] files=file.listFiles();
        ArrayAdapter<File> adapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,files);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                try {
                    mediaPlayer.setDataSource(listView.getItemAtPosition(position).toString());
                    mediaPlayer.prepare();
                } catch (IOException e) {
                    e.printStackTrace();
                    return;
                }
                mediaPlayer.start();
            }
        });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activitymain_menu,menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public void onBackPressed() {
        if(backdoublepressed){
            MainActivity.this.finish();
        }
        else{
            backdoublepressed=true;
            Toast.makeText(getApplicationContext(),"press back again to exit",Toast.LENGTH_LONG).show();
            handler.postDelayed(exit,3000);
        }
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case(R.id.exit):{MainActivity.this.finish();break;}
            case(R.id.setting):{
                Intent intent=new Intent(getApplicationContext(),SettingActivity.class);
                startActivity(intent);
            }
        }
        return super.onOptionsItemSelected(item);
    }

}

异常是从使用file.listFiles()声明和初始化文件变量开始的;我是否犯了什么错误?

   File file=new File(Environment.getExternalStorageDirectory()+"/Musics");
    File[] files=file.listFiles();
    ArrayAdapter<File> adapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,files);
    listView.setAdapter(adapter);

如果有人能解决这个问题,我将不胜感激。

转载请注明出处:http://www.zhongtian365.com/article/20230520/2263662.html

随机推荐

  1. 如何修复gatsbyjs中的“未知参数slug‘”?

    我目前正在尝试创建一个使用gatsbyjs的博客网站,并希望我的博客帖子有他们的网页为他们创建编程。我遵循了官方文档的教程部分中的步骤,但我不是从markdown文件创建页面,而是从内容丰富的CMS中提取数据。每当我运行我的代码时,我都会不...

  2. 在尝试使用aiohttp查找url中的值时,如何修复TypeError:URL‘类型的参数不可迭代’

    当使用AIOHTTP并返回请求的url时,im尝试迭代并查找url中的特定值。如果有一个特定值,它必须对url做一些处理。我已经尝试过使用for循环解析requrl.url,但同样不起作用。当我将requrl.url附加到列表时,它会像这样...

  3. RSpec -如何修复- ArgumentError:错误的参数数量(给定0个,预期为1个)

    我是学习RSpec的新手。我似乎不明白为什么我的测试#start method会失败。如果有人能给我解释的话会很感激的。我得到的错误是:CardGame attributes should have a name #resp...

  4. 如何修复URIBuilder getRequest参数转义

    在我的代码中,我想在SugarCRM REST API V10上启动GET请求,对于过滤器,我必须向请求中添加一些参数应该是什么:https://domain/rest/v10/Accounts?filter=[{system_uuid_c...

  5. 如何修复Admin::Payments#show中的ArgumentError :错误的参数数量(1代表0)

    我尝试为Active Admin上的payments添加一个show“接口,因此我将此代码添加到我的文件app/admin/payments.rb”中:ActiveAdmin.register Payment do actions ...

  6. 如何修复emtrends错误消息“参数‘选项’缺失,没有默认值”

    我正在尝试运行一个由2个固定效果变量组成的混合效果模型,其中第一个固定效果具有两个级别,而另一个表示连续数据。连续的数据是pH,我有12个唯一的值,它们与我的治疗块的不同子图相关联。因为我使用的是连续数据,所以使用cld(emmeans()...

  7. 如何在Flutter中修复“命名参数colors‘in defined”的问题?

    我得到一个参数格式错误,当我使用常量渐变的颜色。 Expanded( child: OpenContainer( closedElevati...

  8. LLVM:如何修复“引用另一个函数中的参数”

    我正在尝试在LLVM中编写一个函数pass来替换read(file_descriptor, buffer, size)与klee_make_symbolic(buffer, size, name_of_symbol)然而,在尝试重用旧函数的...

  9. 如何修复传递给Angular路由参数的值?

    假设我在routings模块中以下面的方式设置了路由。 { path: dashboard/project/:projectId, loadChildren: () = import(./modules/pro...

  10. 如何修复Octave中未定义的‘参数’

    我正在尝试编写一个脚本,它将绘制两个函数之间计算的比率。在多次尝试重写函数之后,我仍然得到X未定义的相同错误。什么是不正确的声明?功能代码(surface_area.m):function surface_area(x) surface...