Android:CursorAdapter的问题

时间:2015-06-10 01:16:04

标签: android sqlite listview android-cursoradapter populate

首先感谢大家的答案,对不起使用的英文不好,有一个控制器类来填充listview和一个扩展CursorAdapter的适配器类,我的问题是当我setAdapter时,我的类适配器没有运行Newview方法BindView肯定没有运行。这是用于此的代码,他们希望可以提供帮助。问候

public class ListaAdaptador extends CursorAdapter {


public static class ContenedorView
{
    TextView nombre;
    TextView apellidos;
    TextView dni;
    TextView telefono;
    ImageView img;
}
public ListaAdaptador(Context a, Cursor c)
{
    super(a, c);


}



@Override
public int getCount() {
    return 0;
}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return 0;
}

@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
    LayoutInflater inflater =  (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = inflater.inflate(R.layout.list_item,parent,false);
    ContenedorView contenedor = null;
    contenedor = new ContenedorView();
    contenedor.nombre = (TextView) view.findViewById(R.id.txt_item_nombre);
    contenedor.apellidos =(TextView) view.findViewById(R.id.txt_item_apellidos);
    contenedor.dni = (TextView) view.findViewById(R.id.txt_item_dni);
    contenedor.telefono = (TextView) view.findViewById(R.id.txt_item_telefono);
    contenedor.img = (ImageView) view.findViewById(R.id.ImageViewItem);
    view.setTag(contenedor);
    return view;
}

@Override
public void bindView(View view, Context context, Cursor cursor) {
    ContenedorView contenedor = (ContenedorView) view.getTag();
    contenedor.nombre.setText(cursor.getString(cursor.getColumnIndex("nombre")));
    contenedor.apellidos.setText(cursor.getString(cursor.getColumnIndex("apellidos")));
    contenedor.dni.setText(cursor.getString(cursor.getColumnIndex("dni")));
    contenedor.telefono.setText(cursor.getString(cursor.getColumnIndex("telefono")));
    contenedor.img.setImageResource(R.drawable.img_nodisp);
}

}

clase ListaControlador

public class ListadoControlador extends ListActivity {

EditText aproximacion;
ListView lv;
ImageButton buscar;
SQLiteDatabase db;
Cursor cursor;
ListaAdaptador adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_listado);
    aproximacion = (EditText) findViewById(R.id.EditText01);
    buscar =(ImageButton)findViewById(R.id.btnBuscar);
    lv=getListView();

    prepararBaseDeDatos();
    obtenemosValores();
}


public void prepararBaseDeDatos()
{
    AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,"registro",null,1);
    db = admin.getWritableDatabase();
}


public void obtenemosValores()
{
        cursor = db.rawQuery("select _id,nombre,apellidos,dni,telefono from paciente", null);
        adapter = new ListaAdaptador(ListadoControlador.this,cursor);
        lv.setAdapter(adapter);
  }

1 个答案:

答案 0 :(得分:0)

从ListaAdaptador类中删除三个覆盖方法getCount()getItem()getItemId()。由于您正在使用CursorAdapter,因此您不需要它们。