CursorAdapter로 데이터 리스트 만들었습니다. 대충 잘나옵니다.
문제는 데이터중에 리스트상에서 보일지 말지를 결정하는 판단을 java코드에서 하고있어서
즉 , sql문과 같이 커서를 구축하는 부분에서 하지 않고 java Function으로 별도로 있습니다.
이런경우 row를 추가 하지 않고 싶을때 어떻게 해야되나요?
아래는 홀더 패턴으로 subclass안의 내용인데요 대충 이렇게 했습니다.
/**[List adapter]************************************************/
static class ViewHolder{
TextView list_name;
TextView list_number;
}
class ContactList extends CursorAdapter{
private Context context;
private LayoutInflater inflater;
private int layout;
public ContactList(Context context, Cursor c,int layout) {
super(context, c);
this.layout = layout;
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(layout, parent, false);
ViewHolder holder = new ViewHolder();
holder.list_name = (TextView)view.findViewById(R.id.list_name);
holder.list_number = (TextView)view.findViewById(R.id.list_number);
view.setTag(holder);
return view;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
// TODO Auto-generated method stub
/*
TextView txtListName = (TextView)view.findViewById(R.id.list_name);
TextView txtListNumber = (TextView)view.findViewById(R.id.list_number);
txtListName.setText(cursor.getString(1));
txtListNumber.setText(cursor.getString(2));
*/
//이부분에서 데이터를 함수로 보일지 말지를 체크하는 데 안보이게 하려면 어떻게 해야되나요?
ViewHolder holder = (ViewHolder)view.getTag();
holder.list_name.setText(cursor.getString(1));
String phstring = cursor.getString(2);
if(isPhone(phstring)){
String[] phArr = isPhoneParse(phstring);
if(phArr!=null && phArr.length==3)
phstring = phArr[0]+"-"+phArr[1]+"-"+phArr[2];
}
holder.list_number.setText(phstring);
}



