0
ArrayList에 문자열 배열을 사용하여 간단한 listview를 채우려고합니다. 시도 할 때마다 강제로 닫습니다. 나는 Logcat에서 보았 듯이 배열에 올바른 문자열을 얻는 것을 안다. 나는 그것이 강제 폐쇄 이유를 알아낼 수 없습니다. 어쩌면 내가 ArrayAdapter에서 뭔가를 잊고있어 (그것은 나에게 맞아 보인다) 또는 어쩌면 내가 틀린 장소에 내 populate 방법을 가하고있어 ... 누군가가 나를 도울 수 있습니까?ListView에 ArrayList 채우기
public class SchedLayout extends Activity {
public ArrayList<String> titleArray;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sched_layout_layout);
new doParse().execute();
}
private class doParse extends AsyncTask<Void, Void, Void> {
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File(sdCard.getAbsolutePath() + "/directory/");
File file = new File(dir, "file.html");
@Override
protected Void doInBackground(Void... params) {
try {
FileInputStream input = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(
input, "UTF-8"));
String line;
titleArray = new ArrayList<String>();
while ((line = br.readLine()) != null) {
String html = line;
Document doc = Jsoup.parse(html);
Elements rels = doc.select("a[rel]");
for (Element title : rels) {
String exclude = "Follow";
if (title.attr("title").contains(exclude)) {
continue;
}
titleArray.add(title.attr("title"));
// Log.v("", title.attr("title")); <--works
}
}
br.close();
input.close();
populate(titleArray); <--does not work
} catch (FileNotFoundException e) {
//Never happens
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
private void populate(ArrayList<String> array) {
ListView showList = (ListView) findViewById(R.id.listView1);
ArrayAdapter<String> shows = new ArrayAdapter<String>(
getApplicationContext(),
android.R.layout.simple_list_item_1, array);
showList.setAdapter(shows);
}
}
}
감사합니다. 나는 잘못된 방법으로 그 방법을 사용했을지도 모른다고 생각했습니다. :) – Grux