cursoradapter com diferentes layouts de linha

Estou tentando criar um adaptador de cursor personalizado que usará dois layouts diferentes, dependendo de alguns dados no cursor. Eu continuo lendo sobre 'substituindo getViewTypeCount () e getItemViewType ()' para que isso aconteça, mas não consigo descobrir como implementar isso ..

Este é o meu código para os métodos bindView e novo View:

@Override
public void bindView(View view, Context context, Cursor cursor) {
    TextView tView = (TextView) view.findViewById(R.id.TextView1);
    tView.setText("The text");
}

@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
    return mInflater.inflate(R.layout.item1, parent, false);
}

.

EDITAR Agora consegui isso funcionando, mas quero escolher qual layout de linha usar, dependendo de alguns dados no cursor e não consigo fazê-lo funcionar. Alguém tem alguma idéia?

@Override
public int getItemViewType(int position) {
    return position % 2;
}

@Override
public int getViewTypeCount() {
    return 2;
}

@Override
public void bindView(View view, Context context, Cursor cursor) {
    ViewHolder holder = (ViewHolder) view.getTag();
    holder.txtAddress
            .setText("blabla");
}

@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
    ViewHolder holder = new ViewHolder();
    View v = null;
    int type = cursor.getPosition() % 2;
    if(type == 0) {
        v = mInflater.inflate(R.layout.item, parent, false); 
    } else {
        v = mInflater.inflate(R.layout.item2, parent, false);
    }

    holder.txtAddress = (TextView) v.findViewById(R.id.tvName);

    v.setTag(holder);
    return v;
}

questionAnswers(3)

yourAnswerToTheQuestion