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

listview adapter 질문입니다.

0 추천

메인 엑티비티에서 웹에 요청하여 파싱으로 데이터를 불러오고 그내용을 다음페이지로 이동하는 버튼을 클릭하여 

리스트뷰로 뿌려주는 작업을 하고있는데요. 

메인클래스에서 파싱으로 서버에 데이터를 요청하여 파싱한 후 

 
다음과 같이 adapter 클래스를 만들고  
 
public class ListAdapter extends BaseAdapter {
 
Context ctx;
int layout;
ArrayList<ListDTO> list;
LayoutInflater inf;
 
ListDTO dto = new ListDTO();
 
public ListAdapter(Context ctx, int layout, ArrayList<ListDTO> list) {
 
this.ctx = ctx;
this.layout = layout;
this.list = list;
 
inf = (LayoutInflater) ctx
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
 
@Override
public int getCount() {
 
return list.size();
}
 
@Override
public Object getItem(int position) {
 
return list.get(position);
}
 
@Override
public long getItemId(int position) {
 
return position;
}
 
@Override
public View getView(int position, View convertView, ViewGroup parent) {
 
if (convertView == null) {
convertView = inf.inflate(layout, null);
}
 
TextView tv_category = (TextView) convertView
.findViewById(R.id.tv_category);
TextView tv_facility = (TextView) convertView
.findViewById(R.id.tv_facility);
 
ListDTO dto = list.get(position);
tv_category.setText(dto.getCategory());
tv_facility.setText(dto.getFacility());
 
return convertView;
}
 
}
 
result 클래스에서 다음소스로 불러옵니다. 
public class Result extends Activity {
 
ListDTO dto = new ListDTO();
ListView lv;
ArrayList<ListDTO> list;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listmain);
 
lv = (ListView) findViewById(R.id.lv);
 
ListAdapter adapter = new ListAdapter(getApplicationContext(),
R.layout.list, list);
lv.setAdapter(adapter);
 
// 인텐트 얻기
try {
Intent intent = getIntent();
 
// 직렬화 객체 얻기
dto = (ListDTO) intent.getSerializableExtra("test");
} catch (Exception e) {
e.getStackTrace();
}
 
}
 
}
 
근데 앱만 실행을 시키면 중지가 되는데요 이유가 뭔가요?
 
 

 

qwlwwmq (560 포인트) 님이 2014년 2월 11일 질문

1개의 답변

0 추천
로그캣에 어떤 에러가 나는지 확인을 하시는게 우선일거같아요.
익명사용자 님이 2014년 2월 11일 답변
02-11 15:06:01.187: E/AndroidRuntime(11019): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.xmllisttest/com.example.xmllisttest.Result}: java.lang.NullPointerException
02-11 15:06:01.187: E/AndroidRuntime(11019): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.xmllisttest/com.example.xmllisttest.Result}: java.lang.NullPointerException

이렇게 로그캣에 에러메시지가 나타납니다.
널포인터 익셉션이니까 수신받은 데이터를 파싱해서 넣을때 문제가 생길거같은데요.
지금 올리신 로그의 아래에 문제가 생긴 위치가 나타날거에요.
해당부분을 확인해보시면 될거같아요.
모르시면 그밑에 로그도 올려주세요.
...