2011-11-09 4 views
0

[私はAndroidプログラミングでかなり新しいので、私のnoobyの質問のために私を失礼]テキストファイルの内容をロードしてListViewを使用して表示する方法は?

私は辞書のアプリを開発しています。このアプリケーションの機能の1つはお気に入りのボタンを保存して、お気に入りの単語を保存したり(ショートカット)、お気に入りの単語のリストを表示することができます(ロングクリック)。

これまでのところ、単語をテキストファイル(myfav.txt)に保存することに成功しました。テキストファイルのコンテンツのフォーマット以下の通りです(ライン上の各項目):

A 
    B 
    C 
    ... 
    Z 

はしかし、私はロードに問題があり、私のアプリ内でこのファイルを表示します。私はListViewを使用して "myfav.txt"の内容を表示することを考えていますが、実際に何をすべきか分かりません。私は&Qと相談しましたが、他の同様の記事のように、結果としてより混乱していました。

したがって、私の質問は以下のとおりです。

  1. がどのように私は「myfav.txt」の内容をロードして、リストビューを使用して、それを表示することができますか? 初心者の方も詳しい説明をお願いしますか?
  2. ListView以外の "myfav.txt"の内容を表示するには、より良い方法はありますか?ここで

私のコードです:

//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; 

     } 
    }); 

本当にありがとうございました。

答えて

2

こんにちは、あなたは有用な例hereを見つけることができます。

+0

ありがとうございました。できます! –

0

ファイルを使用してそのような情報を保存することはあまり洗練されていません。 SQLiteの使い方についてのチュートリアルを調べる必要があるので、単語をデータベースに保存して、カーソルを使用してListViewで表示することができます。好きな言葉をそのようにマークするために、スキーマ内に別のブール値列を使用することができます。あなたはファイルに固執する場合

とにかく、一つの解決策は次のようになります。

  1. は、文字列の配列にファイルの内容をお読みください。たとえば、 Scannerクラスは、ファイルから行を簡単に読み取って、この配列に別々の文字列として格納します。
  2. この配列を使用して、単純なArrayAdapterアダプタクラスを構築します。
  3. このアダプタをListViewに割り当てます。
  4. 利益。
+0

ありがとうございました。私はSQLite dbでそれをやりたいと思って、それをやってみました。しかし、それは私のSQLiteデータベースは私のアプリケーションでは作成されていないが、外部のSQLiteデータベースマネージャーを使って変換されているので簡単ではありません。ここの紳士は、好きな言葉のIDを記憶するためにDBにテーブルを追加して余分にテーブルを追加することを勧めましたが、どうやって行うのか分かりません。 –

1

ListViewを使用することをお勧めします。この方法を選択した場合は、ListAdapterを提供する必要があります。

私は(あなたが行う場合)ファイルへの書き込みについては、以下のかEdiText私が使用しています

+0

多くのありがとう。 TextViewを使用してビューのファイルを保存して読み込めるようになりました。しかし、私はまた、SQLiteメソッドを使用することを考えています。あなたは何か勧告があるのだろうか? –

0

を(あなたがテキストを編集する必要がない場合)TextViewを使用することをお勧めしたい -

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 
+0

多くのあなたに感謝します。 –

+0

いつも歓迎:) – rohit

関連する問題