2012-01-31 3 views
0

У меня есть список с данными из моей базы данных. Я хочу иметь кнопку в каждом элементе списка, который onClick удалит этот элемент из базы данных. Вот как я получить данные из БД и представить их в виде списка:Кнопка clickable в моей базе данных

DB entry=new DB(this); 

     entry.open(); 

     Cursor cursor = entry.getData(); 
     startManagingCursor(cursor); 

     ListView list=(ListView)findViewById(R.id.list); 

     String[] columns = new String[] { DBHelper.NAME, DBHelper.SURNAME}; 

     int[] to = new int[] { R.id.textView01,R.id.textView02}; 

     SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, R.layout.row, cursor, columns, to); 

     list.setAdapter(mAdapter); 

     entry.close(); 

Итак, моя проблема заключается в: Как создать кнопку интерактивными в каждом элементе списка

EDIT: это адаптер я создал:

public class myAdapter extends BaseAdapter { 
    private Context mContext; 

    final Drawable delete_btn; 
    private ImageButton imageButton; 

    private LayoutInflater inflater; 

    private List<ITEMS> items = new ArrayList<ITEMS>(); 

    public myAdapter(Context ctx) { 

     mContext = ctx; 
     inflater = LayoutInflater.from(mContext); 

     delete_btn = ctx.getResources() 
       .getDrawable(R.drawable.delete_btn); 
    } 

    public View getView(final int position, View convertView, ViewGroup parent) { 

     View btv = null; 
     try { 
      btv = inflater.inflate(R.layout.row, null); 

      TextView name = (TextView) btv.findViewById(R.id.textView01); 
      name.setText(DBHelper.NAME); 


      TextView surname = (TextView) btv.findViewById(R.id.textView02); 
      surname.setText(DBHelper.SURNAME); 

      imageButton = (ImageButton) btv.findViewById(R.id.delete_btn); 
      imageButton.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 

      Toast.makeText(mContext, "Button pressed", Toast.LENGTH_LONG).show(); 



       } 
      }); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return btv; 
    } 

    public void addItem(ITEM it) { 
     items.add(it); 
    } 

    public void setListItems(List<ITEM> lit) { 
     items = lit; 
    } 

    @Override 
    public int getCount() { 
     return items.size(); 
    } 

    @Override 
    public Object getItem(int arg0) { 
     return items.get(arg0); 
    } 

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

} 
+0

больше не помогите с моим редактированием пожалуйста ?? –

ответ

1

создать свой собственный CustomCursorAdapter вместо SimpleCursorAdapter. Вот example

+0

Я обновил свой ответ с адаптером i created.But now, как я могу вызвать информацию о базе данных в свой адаптер? Я должен сделать это в классе адаптера или в классе, который я вызываю адаптер? –

+0

вместо SimpleCursorAdapter использовать myAdapter –

+0

так просто? Если вы видите мой отредактированный ответ, я не использую нигде класс dbhelper. Как получить мои данные? –

Смежные вопросы