그래, 객체의 링크 된 목록에서 안드로이드의 목록보기를 채우려고합니다. 텍스트 파일의 라인을 읽고, 텍스트 파일의 각 라인에서 두 개의 값을 ","로 분리하여 각 값을 오브젝트의 링크 된리스트에 저장합니다. 그런 다음 각 객체의 이름 필드를 가져 와서 목록보기를 채 웁니다. 나는 그것이 안좋은 것을 안다. 나는 안드로이드로 시작하고있다 : E이 시점에서는 전혀 동작하지 않지만 코드에는 오류가 없다.텍스트 파일에서 목록보기를 채우는 중 문제가 발생했습니다. Android
여기에이 ID가 귀하의에서 onCreate 함수의 두번째 라인으로 위의 라인을 넣어
setContentView(R.layout.main);
에 대한 호출 AFTER 때까지의에 의해 당신은보기를 찾을 수 없습니다 내 activity.java 파일
package com.pkuCalc.pkuCalc;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import android.app.Activity;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.os.Bundle;
public class PkuCalcActivity extends Activity {
private ListView lv;
List<Food> foodlist = new LinkedList<Food>();
int numFoodItems = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
lv = (ListView) findViewById(R.id.listView1);
try{
InputStream inputStream = getResources().openRawResource(R.raw.food);
if (inputStream != null) {
InputStreamReader inputreader = new InputStreamReader(inputStream);
BufferedReader r = new BufferedReader(inputreader);
String strLine;
while ((strLine = r.readLine()) != null) {
int z = 0;
int length = strLine.length();
int ind = strLine.indexOf(',');
String name = "";
for (int i = 0; i < ind; i++) {
name = name + strLine.charAt(i);
}
String sphe = "";
for (int i = ind + 2; i < length; i++) {
sphe = sphe + strLine.charAt(i);
}
int phe = Integer.parseInt(sphe);
Food newFood = new Food(name, phe);
foodlist.add(newFood);
numFoodItems = z;
z++;
}
}
inputStream.close();
} catch (IOException e){ //Catch exception if any
e.printStackTrace();
}
ArrayList<String> values = new ArrayList<String>();
for (int i = 0; i <= numFoodItems; i++) {
values.add((foodlist.get(i)).getName());
}
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, values);
lv.setAdapter(arrayAdapter);
setContentView(R.layout.main);
}
}
고마워요. 작동하지만, 여전히 목록보기에 하나의 항목 만 가져옵니다 ... – Tom
루프가 끝나면 목록의 길이를 인쇄하여 두 개 이상의 요소가 있는지 확인하십시오. – JustinDanielson