2011-06-05 58 views
0

所以我使用ListActivity来查看每个记录信息,除了_id从数据库。如何将数据库中的id放置到ListAdapter并使用它从数据库中删除相同的id记录?如何使用数据库中的ID将它用于ListAdapter?

向下滚动查看我的脚本。

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

使用此在您的onItemClickMethod以从数据库中删除被点击的行

SQLiteDatabase质数据库= dbHelper.getWritableDatabase(); dbase.delete(“pocket”,“_ID =?”,new String [] {String.valueOf(position)});

+0

Thanx Damian,因为你,我用比这更好的东西解决了我的问题。 :) – Xarialon 2011-06-07 19:00:17

相关问题