如何加载文本文件的内容并使用ListView显示它?

时间:2011-11-09 09:38:42

标签: java android listview

[我对Android编程很新,所以请原谅我提出的问题)

我正在开发一个字典应用程序。此应用程序的一个功能是收藏夹按钮,允许用户保存喜欢的单词(短按)并查看喜欢的单词列表(长按)。

到目前为止,我已成功将单词保存到文本文件(myfav.txt)中。文本文件内容的格式如下(一行中的每个项目):

    A
    B
    C
    ...
    Z

但是,我在应用程序中加载和查看此文件时遇到问题。我正在考虑使用 ListView 来显示“myfav.txt”的内容,但我真的不知道该怎么做。我咨询过Qs&从这里的其他类似帖子,但结果发现自己更加困惑。

因此,我的问题是:

  1. 如何加载“myfav.txt”的内容并使用ListView显示? 您能否详细说明初学者?
  2. 有没有更好的方法来查看ListView以外的“myfav.txt”的内容?
  3. 这是我的代码:

        //Reading lines from myfav.txt
        btnAddFavourite.setOnLongClickListener(new View.OnLongClickListener() {         
    
                @Override
                public boolean onLongClick(View v) {
                    File sdcard = Environment.getExternalStorageDirectory();
                    setContentView(R.layout.text_view);
    
                 //trying opening the myfav.txt
                    try{
                           File f = new File(sdcard,"myfolder/myfav.txt");
                           InputStream fileIS = new FileInputStream(f);
                           BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS));
                           String readString = new String();
                           while((readString = buf.readLine())!= null){
                              Log.d("Content: ", readString);
    
                           //How to code to load/view the content of "myfav.txt" 
    
                           }
                        } catch (FileNotFoundException e) {
                           e.printStackTrace();
                        } catch (IOException e){
                           e.printStackTrace();
                        }
                    return false; 
    
            }
        });
    

    非常感谢你。

4 个答案:

答案 0 :(得分:1)

您好,您可以找到有用的示例here

答案 1 :(得分:1)

我认为使用ListView不是一个好主意。如果您选择这种方式,则需要提供ListAdapter

我建议您使用TextView(如果您不需要编辑文字)或EdiText(如果您这样做)

答案 2 :(得分:0)

使用文件保存此类信息并不太复杂。我认为您应该查看有关使用SQLite的教程,因此您可以将这些单词存储在数据库中,并使用游标在ListViews中查看它们。您可以在模式中使用单独的布尔颜色来标记有利的单词,例如。

无论如何,如果你想坚持使用文件,一个解决方案就是:

  1. 将文件内容读入String数组。你可以用例如Scanner类可以轻松地从文件中读取行,并将它们作为单独的字符串存储在此数组中。
  2. 使用此数组构造一个简单的ArrayAdapter适配器类。
  3. 将此适配器分配给ListView。
  4. 利润。

答案 3 :(得分:0)

我正在使用以下内容写入文件 -

    FileOutputStream fout = null;
    try {
        fout = openFileOutput(fileName, MODE_PRIVATE);          
        ObjectOutputStream oos = new ObjectOutputStream(fout);
        oos.writeObject(wordList);  //writing  arraylist<T>
        oos.flush();
    } catch(IOException e)
    {
        e.printStackTrace();
    }

阅读 -

fin = openFileInput(fileName);          
ObjectInputStream ois = new ObjectInputStream(fin);
list =(ArrayList<T>)ois.readObject(); //reading in arraylist directly