如何使用db中的id将其用于ListAdapter?

时间:2011-06-05 11:09:38

标签: android database sqlite

所以我使用ListActivity从db中查看除_id之外的所有记录信息。如何将数据库中的id放入ListAdapter并使用它从数据库中删除相同的id记录?

向下滚动以查看我的脚本。

import java.util.ArrayList;

import android.app.ListActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.TextView;
import android.widget.Toast;

public class PrivateHistory extends ListActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

        ArrayList<String> results = new ArrayList<String>();
        final ArrayList<String> resultsID = new ArrayList<String>();

        DatabaseHelper dbHelper = new DatabaseHelper(this);
        final SQLiteDatabase db = dbHelper.getReadableDatabase();

        try {
            Cursor c = db.rawQuery("SELECT * FROM pocket", null);

            if(c != null ) {
                if(c.moveToLast()) {
                    do {
                        String incompleteDate = c.getString(c.getColumnIndex("date"));
                        String year = incompleteDate.substring(0, 4);
                        String month = incompleteDate.substring(5, 7);
                        String day = incompleteDate.substring(8, 10);
                        String date = day + "-" + month + "-" + year;

                        String id = c.getString(c.getColumnIndex("_id"));
                        String time = c.getString(c.getColumnIndex("time"));
                        String income = c.getString(c.getColumnIndex("income"));
                        String cost = c.getString(c.getColumnIndex("cost"));

                        if(income.equals("0.00")){
                            resultsID.add(id);
                            results.add("Date:" + date + " Time:" + time +"\nCost\t\t: € -" + cost);
                        }

                        if (cost.equals("0.00")){
                            resultsID.add(id);
                            results.add("Date:" + date + " Time:" + time +"\nIncome\t: € " + income);
                        }
                    }while (c.moveToPrevious());
                } 
            }
            ListView lv = getListView();
            lv.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
                    Toast.makeText(getApplicationContext(), ((TextView) view).getText(),          Toast.LENGTH_SHORT).show();
                }
            });

            this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,results));

        } catch (SQLiteException se ) {
            Log.e(getClass().getSimpleName(), "Could not create or Open the database");
        }
}

}

1 个答案:

答案 0 :(得分:1)

在onItemClickMethod中使用它来删除从数据库中单击的行

SQLiteDatabase dbase = dbHelper.getWritableDatabase(); dbase.delete(“pocket”,“_ ID =?”,new String [] {String.valueOf(position)});