2011-12-15 9 views
1

私はいくつかの行からなるプレーンテキストファイルを持っています。各行の最後にはカンマ(、)を挿入します。テキストファイルを読み込んでListViewに設定することもできますが、わかりませんListViewに新しいアイテムを作成するにはどうすればよいでしょうか?コンマで終わる行です。 (私は単一の項目内の1行を示す意味。)テキストファイルからのデータをlistViewに表示する方法

私はこのようなテキストファイルました:

Test 1 , 
Test 2 , 
Test 3 , 

そして、この私のListActity

この ListViewは私のすべてを示す
public class MainMenuActivity extends ListActivity { 
    public String[] ListItems = new String[]{}; 
    @Override 
    public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
     try { 
    Resources ResFiles = getResources(); 
     InputStream ReadDbFile = ResFiles.openRawResource(R.raw.test); 
     byte[] Bytes = new byte[ReadDbFile.available()]; 
     ReadDbFile.read(Bytes); 
     String DbLines = new String(Bytes); 
     ListItems= new String[]{DbLines}; 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      R.layout.main_list, R.id.ListText, ListItems); 
     setListAdapter(adapter); 
     } catch (Exception e) { 
    } 
} 

を単一の項目の行、任意のアイデア?

答えて

4

ListItems= new String[]{DbLines};は1つのアイテムの配列を表示します。

DbLines.split(",")が;-)

1
String DbLines = new String(Bytes); // One string containing all the file 
ListItems= new String[]{DbLines}; // an array containing the previous string 

方がよいかもしれませんなぜあなたはリストビューが複数の項目を表示するように期待していますか?このように、文字列配列内のファイル内容を分割するようにしてください:あなたはまた、使用して分割することができます

public class MainMenuActivity extends ListActivity { 
    public String[] ListItems = new String[]{}; 
    @Override 
    public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
     try { 
    Resources ResFiles = getResources(); 
     InputStream ReadDbFile = ResFiles.openRawResource(R.raw.test); 
     byte[] Bytes = new byte[ReadDbFile.available()]; 
     ReadDbFile.read(Bytes); 
     String DbLines = new String(Bytes); 
     ListItems = DbLines.split(","); // Split the content by "," 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      R.layout.main_list, R.id.ListText, ListItems); 
     setListAdapter(adapter); 
     } catch (Exception e) { 
    } 
} 
0

:最後に

ListItems = DbLines.split(","); 

DbLines.append("\r\n"); //Splits by NL 

Test 1 
Test 2 
Test 3 

このため、より適切でした私のコードと同様にあなたのためかもしれません。私は.lineseperatorメソッドがあると信じていますが、これは私のために働く。

関連する問題