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);
..
}