Tecnologia do Blogger.
RSS

[androidbrasil-dev] Adicionar Id numa lista com CursorAdapter

Olá pessoal,

Estou iniciando meus estudos com o Android e gostaria de uma ajuda.
Fiz um Adapter extendendo um CursorAdapter para preencher uma lista personalizada.
Agora gostaria de saber como faço para relacionar cada item da lista à id do registro da base de dados.
A idéia é recuperar a id do item pressionado para exibir uma Activity com mais informações.
O código do Adapter é este:

package br.com.jdroid.feriados.Adapter;

import br.com.jdroid.feriados.R;

import android.content.Context;
import android.database.Cursor;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CursorAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class AnniversariesAdapter extends CursorAdapter{
   
    private LayoutInflater mInflater;
    private int mRowIdIndex;   
    private int mTitleIndex;
    private int mDayIndex;
    private int mMounthIndex;
    private int mCategoryIndex;
   
   
    public AnniversariesAdapter(Context context, Cursor c) {
        super(context, c);
        mRowIdIndex = c.getColumnIndex(FeriadosDbAdapter.KEY_ROWID);
        mTitleIndex = c.getColumnIndex(FeriadosDbAdapter.KEY_TITLE);
        mDayIndex = c.getColumnIndex(FeriadosDbAdapter.KEY_DAY);
        mMounthIndex = c.getColumnIndex(FeriadosDbAdapter.KEY_MONTH);
        mCategoryIndex = c.getColumnIndex(FeriadosDbAdapter.KEY_CATEGORY);

        mInflater = LayoutInflater.from(context);
    }

    @Override
    public void bindView(View view, Context context, Cursor c) {
        //ListView v = (ListView) view.findViewById(R.id.);
        ImageView image = (ImageView) view.findViewById(R.id.calendar_icon);
        TextView title = (TextView) view.findViewById(R.id.title);
        TextView abbrev = (TextView) view.findViewById(R.id.abbrev);
       
        int cat = c.getInt(mCategoryIndex);
        if (cat == 1) image.setImageResource(R.drawable.ic_calendar);
        if (cat == 2) image.setImageResource(R.drawable.ic_calendar_2);

        title.setText(c.getString(mTitleIndex));
        abbrev.setText(c.getString(mDayIndex) + "/" + c.getString(mMounthIndex));   
       
    }

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




E o Activity principal da aplicação é este:

package br.com.jdroid.feriados;
import  br.com.jdroid.feriados.R;


import br.com.jdroid.feriados.Adapter.AnniversariesAdapter;
import br.com.jdroid.feriados.Adapter.FeriadosDbAdapter;

import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;

public class ListAnniversariesActivity extends ListActivity {
   
    private FeriadosDbAdapter mDbHelper;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_dates);
        mDbHelper = new FeriadosDbAdapter(this);
        mDbHelper.open();
       
              
        fillData();
      
    }
   
    private void fillData() {
        Cursor datesCursor = mDbHelper.fetchAll();
        startManagingCursor(datesCursor);
        AnniversariesAdapter adapter = new AnniversariesAdapter(this, datesCursor);       
        setListAdapter(adapter);
    }
}

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário