class MyListAdapter extends BaseAdapter
{
Context context;
LayoutInflater Inflater;
ArrayList<MyItem> arSrc;
int layout;
public MyListAdapter(Context context)
{
this(context, R.layout.d_day_showlist, arItem);
}
public MyListAdapter(Context context, int alayout)
{
this(context, alayout, arItem);
}
public MyListAdapter(Context context, int alayout, ArrayList<MyItem> aarSrc)
{
super();
this.context = context;
Inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
arSrc = aarSrc;
layout = alayout;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return arSrc.size();
}
@Override
public String getItem(int position) {
// TODO Auto-generated method stub
return arSrc.get(position).str_subject;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final int pos = position;
if(convertView == null)
{
convertView = Inflater.inflate(layout, parent, false);
}
TextView tv_subject = (TextView)convertView.findViewById(R.id.tv_subject);//여기서는 모두 널값을 받습니다.
TextView tv_d_day = (TextView)convertView.findViewById(R.id.tv_d_day);
TextView tv_date = (TextView)convertView.findViewById(R.id.tv_date);
String temp_subject;
String temp_d_day;
String temp_date;
temp_subject = "" + arSrc.get(position).str_subject;
temp_d_day = "" + arSrc.get(position).str_d_day;
temp_date = "" + arSrc.get(position).str_d_day;
tv_subject.setText(temp_subject);//이부분에서 널값이여서 에러가 남니다.
tv_d_day.setText(temp_d_day);
tv_date.setText(temp_date);
return convertView;
}
}
class MyItem{
MyItem(String subject, String d_day, String date)
{
str_subject = subject;
str_d_day = d_day;
str_date = date;
}
String str_subject;
String str_d_day;
String str_date;
}
private void setMyItem()
{
//MyItem에 들어가는 값들을 초기화해주는것이다.
String temp_subject;//출력용임시 스트링변수
String temp_d_day;
String temp_day;
MyItem mi;
cursor = SQL_mb.rawQuery("SELECT * FROM Calendar_DB", null);
cursor.moveToFirst();
while(!cursor.isAfterLast())
{
if(cursor.getInt(14)!=-100000)
//디데이값이 디폴트값이 아니여야 한다.
//디데이를 출력할 수있다.
{
temp_subject = cursor.getString(1);
temp_d_day = ""+ "D" + cursor.getInt(14);
temp_day = ""+ cursor.getInt(8) + "년 " + cursor.getInt(9) + "월 " + cursor.getInt(10) + "일";
// al_string_subject.add(temp_subject);
// al_string_d_day.add(temp_d_day);
// al_string_date.add(temp_day);
mi = new MyItem(temp_subject, temp_d_day, temp_day);
arItem.add(mi);
}
cursor.moveToNext();
}
}
커스텀뷰를 만들어서 리스트뷰에 뿌려주는 작업을 하는데 커스텀뷰는 텍스트뷰 3개로 구성되있거든요.
근데 findViewById가 안되니까 그냥 프로그램이 죽네요 ㅠㅠ
어디가 문제인지 모르겠어요ㅠ
{
convertView = Inflater.inflate(layout, parent, false);
}