如何修复“参数‘文件’可能为空”,同时制作一个数组适配器?
我想做一个媒体播放器,它总是抛出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
随机推荐
-
如何修复gatsbyjs中的“未知参数slug‘”?
我目前正在尝试创建一个使用gatsbyjs的博客网站,并希望我的博客帖子有他们的网页为他们创建编程。我遵循了官方文档的教程部分中的步骤,但我不是从markdown文件创建页面,而是从内容丰富的CMS中提取数据。每当我运行我的代码时,我都会不...
-
在尝试使用aiohttp查找url中的值时,如何修复TypeError:URL‘类型的参数不可迭代’
当使用AIOHTTP并返回请求的url时,im尝试迭代并查找url中的特定值。如果有一个特定值,它必须对url做一些处理。我已经尝试过使用for循环解析requrl.url,但同样不起作用。当我将requrl.url附加到列表时,它会像这样...
-
RSpec -如何修复- ArgumentError:错误的参数数量(给定0个,预期为1个)
我是学习RSpec的新手。我似乎不明白为什么我的测试#start method会失败。如果有人能给我解释的话会很感激的。我得到的错误是:CardGame attributes should have a name #resp...
-
如何修复URIBuilder getRequest参数转义
在我的代码中,我想在SugarCRM REST API V10上启动GET请求,对于过滤器,我必须向请求中添加一些参数应该是什么:https://domain/rest/v10/Accounts?filter=[{system_uuid_c...
-
如何修复Admin::Payments#show中的ArgumentError :错误的参数数量(1代表0)
我尝试为Active Admin上的payments添加一个show“接口,因此我将此代码添加到我的文件app/admin/payments.rb”中:ActiveAdmin.register Payment do actions ...
-
如何修复emtrends错误消息“参数‘选项’缺失,没有默认值”
我正在尝试运行一个由2个固定效果变量组成的混合效果模型,其中第一个固定效果具有两个级别,而另一个表示连续数据。连续的数据是pH,我有12个唯一的值,它们与我的治疗块的不同子图相关联。因为我使用的是连续数据,所以使用cld(emmeans()...
-
如何在Flutter中修复“命名参数colors‘in defined”的问题?
我得到一个参数格式错误,当我使用常量渐变的颜色。 Expanded( child: OpenContainer( closedElevati...
-
LLVM:如何修复“引用另一个函数中的参数”
我正在尝试在LLVM中编写一个函数pass来替换read(file_descriptor, buffer, size)与klee_make_symbolic(buffer, size, name_of_symbol)然而,在尝试重用旧函数的...
-
如何修复传递给Angular路由参数的值?
假设我在routings模块中以下面的方式设置了路由。 { path: dashboard/project/:projectId, loadChildren: () = import(./modules/pro...
-
如何修复Octave中未定义的‘参数’
我正在尝试编写一个脚本,它将绘制两个函数之间计算的比率。在多次尝试重写函数之后,我仍然得到X未定义的相同错误。什么是不正确的声明?功能代码(surface_area.m):function surface_area(x) surface...