Android 如何初始化ArrayAdapter/Listview+;点击查看
为什么我的Android 如何初始化ArrayAdapter/Listview+;点击查看,android,listview,Android,Listview,为什么我的ArrayAdapternull?它输入异常,当我查看消息时,它给了我null。我无法初始化此数组。我测试我的字符串[],它不是null。我可以从我的mImageFilenames中看到所有文件名 private void PopulateListView() { mPrivateRootDir = new File(Environment.getExternalStorageDirectory() + ""); Toa
ArrayAdapter
null
?它输入异常,当我查看消息时,它给了我null
。我无法初始化此数组。我测试我的字符串[]
,它不是null
。我可以从我的mImageFilenames
中看到所有文件名
private void PopulateListView() {
mPrivateRootDir = new File(Environment.getExternalStorageDirectory()
+ "");
Toast.makeText(this, mPrivateRootDir + " <--mPrivateRootDir||",
Toast.LENGTH_LONG).show();
// Get the files/images subdirectory;
mImagesDir = new File(mPrivateRootDir, "MyPdf");
Toast.makeText(this, mImagesDir + "<--mImagesDir", Toast.LENGTH_LONG)
.show();
// Get the files in the images subdirectory
mImageFiles = mImagesDir.listFiles();
Toast.makeText(this, mImageFiles[0] + "<--mImageFiles||",
Toast.LENGTH_LONG).show();
// Set up ListView
listViewSelectFile = (ListView) findViewById(R.id.listviewSelectFiles);
// listViewSelectStudent = (ListView)
// findViewById(R.id.listviewSelectStudent);
/*
* Display the file names in the ListView mFileListView. Back the
* ListView with the array mImageFilenames, which you can create by
* iterating through mImageFiles and calling File.getAbsolutePath() for
* each File
*/
mImageFilenames = new String[mImageFiles.length];
for (int i = 0; i < mImageFilenames.length; ++i) {
mImageFilenames[i] = mImageFiles[i].getName();
Toast.makeText(this,
mImageFilenames[i] + "<-- mImageFilenames[i]" + " FOR",
Toast.LENGTH_LONG).show();
}
try {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.list_view_rows, R.id.listview, mImageFilenames);
listViewSelectFile.setAdapter(adapter);
// listViewSelectStudent.setAdapter(adapter);
} catch (Exception e) {
Toast.makeText(this, "ArrayAdapter Error :" + e.getMessage(),
Toast.LENGTH_LONG).show();
}
private void PopulateListView(){
mPrivateRootDir=新文件(Environment.getExternalStorageDirectory())
+ "");
Toast.makeText(这个,mPrivateRootDir+“试试这个:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.list_view_rows, mImageFilenames);
ArrayAdapter adapter=新的ArrayAdapter(这个,R.layout.list\u view\u行,mimagefilename);
好的,我找到问题了
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.list_view_rows, R.id.listview, mImageFilenames);
TextView
应该出现在list\u view\u rows.xml
编辑
由于需要一个简单的列表视图
,因此需要在活动的onCreate()
中初始化它和ArrayAdapter。只需从populate方法返回列表的值即可。
这就是为列表视图设置适配器的方法
onCreate()
{
...
values = populateListView(); //just make the method return an array or ArrayList
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, values);
..
}
onCreate()
{
...
values=populateListView();//只需使该方法返回数组或ArrayList
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,android.R.id.text1,值);
..
}
ArrayAdapter\u name=新的ArrayAdapter(这是android.R.layout.simple\u list\u项,ArrayList\u name);
//阵列适配器的格式应如下所示
ArrayAdapter_name=ArrayAdapter(上下文上下文、int资源、int textViewResourceId、T[]对象);
//简单列表项是列表视图xml文件
//ArrayList_name是要在列表视图中处理的列表您在哪里得到异常?它是try块的第一行还是第二行?在第二行我得到异常,在R.layout.list_view_行包含一个textview On name:ListViewSendFile是否检查了我的答案?如果它包含一个textview,那么您需要传递它的id在R.layout中,我需要ListView和R.id,而不是ListView.in对吗?我试着这样做,但它不起作用。在R.layout中,它是ListView中一行的布局。可能是线性布局或相对布局。TextView应该出现在布局文件中。我看到了xml。这不是它应该的样子。阅读我之前的评论我再次制作了这些xml,并在编辑中发布了它们,如果它们可以的话我将帮助我完成arrayAdapter参数sr.layout.list\u view\u行应该包含哪些内容?listview?您可以添加一些说明吗?这将有助于用户更快地理解您的代码
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.list_view_rows, R.id.listview, mImageFilenames);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.list_view_rows, R.id.someTextView, mImageFilenames);
onCreate()
{
...
values = populateListView(); //just make the method return an array or ArrayList
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, values);
..
}