Problema con cursoradapter

Para dar las gracias debes entrar o registrarte en el foro

Recién llegado
Recién llegado
Mensajes: 2 Agradecido: 0
21 Dic 2013, 19:50# 1

Buenas,
Mi problema es que estoy muy verde en esto de android y no se muy bien como hacer lo siguiente, tengo un listview con un adapter, pero quiero convertirlo en un cursoradapter para usarlo con base datos, he mirado muchos ejemplo y no queda nada claro como usarlo, me podrían indicar que he de hacer ahora, les adjunto el código de listview, así como el código que tengo hasta ahora, si necesitan alguna información sólo han de pedirla. Muchas gracias de antemano

Código de listview con adapter

Código: Seleccionar todo
public class TravelActivity extends ListActivity {
   
   private TravelAdapter adapter;
   
   private class TravelAdapter extends ArrayAdapter{
     
      private Context context;
      private ArrayList travels;
      private static final int RESOURCE = android.R.layout.simple_list_item_2;

      public TravelAdapter(Context context, ArrayList travels) {
         super(context, RESOURCE, travels);
         
         this.context = context;
         this.travels = travels;
      }

      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
         
         LinearLayout view;
         ViewHolder holder;
         
         if (convertView == null){
            view = new LinearLayout(context);
           
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            inflater.inflate(RESOURCE, view, true);
           
            holder = new ViewHolder();
            holder.text1 = (TextView) view.findViewById(android.R.id.text1);
            holder.text2 = (TextView) view.findViewById(android.R.id.text2);
            view.setTag(holder);
           
         } else {
            view = (LinearLayout) convertView;
            holder = (ViewHolder) view.getTag();
         }
         
         //Rellenamos la vista con los datos
         TravelInfo info = travels.get(position);
         holder.text1.setText(info.getCity() + " (" + info.getCountry() + ")");
         holder.text2.setText(getResources().getString(R.string.ano) + " " + info.getYear());
         
         return view;
      }
     
   }
   
   static class ViewHolder {
      TextView text1;
      TextView text2;
   }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       
        //Generamos los datos
        ArrayList values = getData();
       
        //Creamos el adapter y lo asociamos a la activity
        adapter = new TravelAdapter(this, values);
       
        setListAdapter(adapter);
    }


Código con cursor adapter
Código: Seleccionar todo
public class TravelListActivity extends ListActivity {

   private class TravelAdapter extends CursorAdapter{
     
      private static final int layout = android.R.layout.simple_list_item_2;
         String[] items = {"ID"};
         static final String from = Travels._ID;
         static final int to = R.id.list_viajes;
         TextView tipo, fases, duracion;
     
      private final Context context;   
     
        public TravelAdapter(Context context,Cursor c) {
            super.TravelAdapter(context, layout, c, from, to);
           
            // TODO Auto-generated constructor stub
         }


      @Override
     
      public View newView(Context context, Cursor cursor, ViewGroup parent) {
         LayoutInflater inflater = LayoutInflater.from(context);
           View v = inflater.inflate(android.R.layout.simple_list_item_2, parent, false);
         
           ViewHolder holder = new ViewHolder();
           
         holder.text1 = (TextView) v.findViewById(android.R.id.text1);
         holder.text2 = (TextView) v.findViewById(android.R.id.text2);
         v.setTag(holder);
           
         return v;
           
      }
      public void bindView(View view, Context context, Cursor cursor) {

           ViewHolder holder = (ViewHolder)view.getTag();
           
           holder.text1.setText(cursor.getColumnIndex(Travels.CITY) + " (" + cursor.getColumnIndex(Travels.COUNTRY) + ")");
         holder.text2.setText(getResources().getString(R.string.year) + " " + cursor.getColumnIndex(Travels.YEAR));
         
       }
      public View getView(int position, View convertView, ViewGroup parent) {
          if (!mDataValid) {
              throw new IllegalStateException("this should only be called when the cursor is valid");
          }
          if (!mCursor.moveToPosition(position)) {
              throw new IllegalStateException("couldn't move cursor to position " + position);
          }
          View v;
          if (convertView == null) {
              v = newView(mContext, mCursor, parent);
          } else {
              v = convertView;
          }
          bindView(v, mContext, mCursor);
          return v;
      }
     
   }
   
   static class ViewHolder {
      TextView text1;
      TextView text2;
   }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       
        Cursor Cursor = this.managedQuery(TravelsProvider.CONTENT_URI, null, null, null, null);
        this.setListAdapter(new TravelAdapter(this,Cursor));
   
        initialData();
       
        registerForContextMenu(getListView());
    }
Gracias  
Etiquetado en: