마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

setAdapter만 해주면 에러가 뜨네요...

0 추천
package com.example.sns;

import java.util.ArrayList;

import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Toast;


public class mainActivity extends Activity {
 
 //DataListView list;
 //ItemListAdapter adapter;
 CreateLocalDB localdb;
 ArrayList<Item> items;
 ArrayAdapter<Item> adapter;
 
 
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        
  //requestWindowFeature(Window.FEATURE_NO_TITLE);
        
        ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
          ViewGroup.LayoutParams.MATCH_PARENT);
        
        ListView lv = (ListView)findViewById(R.id.lv);
        items = new ArrayList<Item>();
        adapter = new ArrayAdapter<Item>(this, R.layout.itemview, items);
        //lv.setAdapter(adapter);
        
        //list = new DataListView(this);
        //list.setAdapter(adapter);
        
        
        //adapter = new ItemListAdapter(this);
        
        localdb = new CreateLocalDB();
        
        Resources res = getResources();
        
        localdb.InsertDatabase("id01", "Text01", "거리01", "시간01");
        localdb.InsertDatabase("id02", "Text02", "거리02", "시간02");
        localdb.InsertDatabase("id03", "Text03", "거리03", "시간03");
        localdb.InsertDatabase("id04", "Text04", "거리04", "시간04");
        localdb.InsertDatabase("id05", "Text05", "거리05", "시간05");
        
        /*
        adapter.addItem(new Item(res.getDrawable(R.drawable.car), "id01", "Text01", "거리01", "시간01"));
        
        adapter.addItem(new Item(res.getDrawable(R.drawable.car), "id02", "Text02", "거리02", "시간02"));
        
        adapter.addItem(new Item(res.getDrawable(R.drawable.car), "id03", "Text03", "거리03", "시간03"));
        
        adapter.addItem(new Item(res.getDrawable(R.drawable.car), "id04", "Text04", "거리04", "시간04"));
        
        adapter.addItem(new Item(res.getDrawable(R.drawable.car), "id05", "Text05", "거리05", "시간05"));
        */
        
        //localdb.RawQueryToAdapter(adapter, res);
        
        //setContentView(list, params);
        setContentView(R.layout.main2);
        

 }

}

네.. 리스트뷰 예제를 쭉 따라가면서 만들다보니 DataListView를 통해 자바코드 내에서 리스트뷰를 만들어놨기에.

이걸 xml에 리스트뷰를 만들어서 연결하려고 했습니다. 그러다 보니 ItemListAdapter를 BaseAdapter를 상속받아 커스텀 뷰를 만들어놨는데 setAdapter에서는 ListAdapter를 파라메터로 받더군요.

그래서 또 내용 넣는 건 건너뛰고 ArrayAdapter를 만들었습니다. 그러고 lv.setAdapter(adapter);를 해줬더니 여전히 에러가 발생하네요... 저걸 주석처리하면 화면이 뜨고요.

listview어렵네요. 뭐가 문제일까요?

머리가 (370 포인트) 님이 2014년 4월 30일 질문

1개의 답변

0 추천
 
채택된 답변

setContentView(R.layout.main2); 가 문제네요.

super.onCreate 다음으로 옮기세요.

익명사용자 님이 2014년 4월 30일 답변
머리가님이 2014년 5월 3일 채택됨
감사합니다. inflate가 먼저 되어야 하는 것 때문인가요?
...