2012-01-07 5 views
0

첫째, 줄께요 목록보기 웁니다 ​​내 문자열을 보여 질문 대신 해당 항목을 하드 코딩이며, 지금원시 텍스트 파일에서 문자열 배열을 가져 옵니까?

static final String[] title = new String[] { 
    "Temaki Sushi", "Oyakodon", "Okonomiyaki", "Tofu Dango", "Oden", 
    "Nikujaga", "Yellowtail Teriyaki", "Tendon", "Tonjiru", "Sukiyaki", 
    }; 

을, 입술에 외부 텍스트 파일에 항목을 참조 할 수있는 방법은/원료가 폴더? 텍스트 파일에 titles.txt라는 이름의 원시 폴더가 있다고 가정 해 보겠습니다. 이 같은 몇 가지 일을해야

+0

가 왜 안드로이드 문자열 배열의 개념을 사용하지? – kosa

+0

큰 데이터베이스가 있는데이 예제에서는 10 개의 항목 만 있습니다. 그러나 앱이 완료되면 70 개 이상의 항목이 포함되며 매주 업데이트됩니다. 업데이트 또는 변경해야 할 때마다 텍스트 파일을 쉽게 편집 할 수 있습니까? 아니면 문자열 배열 여전히 쉽지? – borislemke

+0

이 같은 뭔가가 필요 : http://stackoverflow.com/questions/2453989/help-in-getting-string-array-from-arrays-xml-file –

답변

2

예, 당신은

private String readTitlesRaw(){ 
    InputStream stream = Context.getResources().openRawResource(R.raw.titles)) 

    Writer writer = new StringWriter(); 
    char[] buffer = new char[10240]; 
    try { 
     Reader reader = new BufferedReader(
     new InputStreamReader(stream, "UTF-8")); 
     int n; 
     while ((n = reader.read(buffer)) != -1) { 
      writer.write(buffer, 0, n); 
     } 
    } finally { 
     stream.close(); 
    } 
    return writer.toString(); 
} 

같은 텍스트를 읽고 다음 원하는대로 배열에 분할해야 할 수

String[] titles=readTitlesRaw().split("SPLITER"); 

각 제목 사이에 SPLITER 쓰기시

+0

Context.getResources() 줄에서이 오류가 발생합니다. 수 없습니다. Context – borislemke

+0

에서 non-static 메소드 getResources()에 statis 참조를 작성하여 문제를 해결하십시오. – borislemke

+0

해당 메소드에 컨텍스트를 전달할 수 있습니다! readTitlesRaw (Context con) 및 호출시 현재 컨텍스트를 제공합니다. con.getResources()를 사용하십시오. 컨텍스트의 객체를 호출하는 것이 필요하지 않기 때문에 con.getResources()를 사용하십시오. – caiocpricci2

0

res/v에서 배열 파일을 만들 수 있습니다 배열을 거기에 추가하고 ArrayAdapter.createFromResource을 사용하여 ArrayAdapter와 연결하십시오. 컨텍스트, 사용할 배열 및 항목 레이아웃을 제공해야합니다. Arrays.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string-array name="EventArray"> 
     <item >Data</item> 
     <item >Address</item> 
     <item >Your items...</item> 
    </string-array>  
</resources> 

예 그런 다음 ArrayAdapter와 함께 귀하의 목록보기를 채 웁니다! 이 코드는 EventArray의 내용을 목록에 넣습니다.

list = (ListView) findViewById(R.id.list); //get your listview 
arrayadapter = ArrayAdapter.createFromResource(this, R.array.EventArray, R.layout.YourListviewLayout); // create the arrayadapter from EventArray using YourListviewLayout. 
list.setAdapter(arrayadapter); 

참조 ArrayAdapter.createFromResource 에 : http://developer.android.com/reference/android/widget/ArrayAdapter.html

+0

목록보기의 항목이 여러 텍스트보기 및 이미지보기가 포함 된보기를 부 풀리고 있습니다. 여러 텍스트 및 이미지 리소스를 사용하여 listview를 채워야합니다. 어쨌든 고마워! ;) – borislemke

관련 문제