2012-03-10 5 views
0

可能性の重複:
how to delete item from listView?リストビューとデータベースから項目を削除するにはどうすればいいですか?

私はリストビューでデータベースからデータを取得し、それが正しく表示されますが、私はそれとIドンをクリックして、リストビューとデータベースから
項目を削除する必要がありますそれについては何も考えていない。
私のサンプルコードは、私に提案やヒントを与えてください。あなたが必要なもの

public class MyTable extends ListActivity { 

private ArrayList<String> results = new ArrayList<String>(); 
int counter=0; 

MySQLiteHelper m=new MySQLiteHelper(this); 
@Override 
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    retriveData();   
    displayResultList();   
} 
private void displayResultList() { 
    TextView tView = new TextView(this); 
    tView.setText("Loc Wise Profile! if you want to delete " + 
      "just click on the Profile!"); 
    tView.setTextColor(Color.YELLOW); 
    getListView().addHeaderView(tView); 

    setListAdapter(new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, results)); 
    getListView().setTextFilterEnabled(true);  
} 
private void retriveData() { 
    try { 
     final MySQLiteHelper m=new MySQLiteHelper(getBaseContext()); 
     final List<LocWiseProfileBeans> LocWiseProfile= m.getAllLocWiseProfile();  

     for (final LocWiseProfileBeans cn : LocWiseProfile) 
     { 

        results.add(cn.getLocname() + " " + cn.getSelectedprofile()); 
     }      
    } catch (Exception e) {    
    } 

} 

MySQliteHelper.java

public class MySQLiteHelper extends SQLiteOpenHelper { 

public static final String TABLE_NAME = "loc_wise_profile"; 
public static final String TABLE_NAME2 = "supervisor"; 
public static final String COLUMN_ID = "_id"; 
public static final String COLUMN1 = "loc_name"; 
public static final String COLUMN2 = "lattitude"; 
public static final String COLUMN3 = "longitude"; 
public static final String COLUMN4 = "selectedprofile"; 
public static final String COLUMN5 = "contactno"; 
public static final String COLUMN6 = "message"; 
//public static final String COLUMN7 = "enabled"; 
public static final String COLUMN8 = "NotificeationMessage"; 

SQLiteDatabase db; 
private static final String DATABASE_NAME = "locale"; 
private static final int DATABASE_VERSION = 2; 

// Database creation sql statement 
private static final String DATABASE_CREATE = "create table IF NOT EXISTS " 
     + TABLE_NAME + "(" + COLUMN_ID 
     + " integer primary key autoincrement, " 
     + COLUMN1 + " text not null, " 
     + COLUMN2 + " double not null, " 
     + COLUMN3 + " double not null, " 
     + COLUMN4 + " text not null ," 
     + COLUMN5 + " text not null ," 
     + COLUMN6 + " text not null ," 
     //+ COLUMN7 + " text not null ," 
     + COLUMN8 + " text not null " 
     + ");"; 



public MySQLiteHelper(Context context) 
{ 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    // TODO Auto-generated constructor stub 
} 

@Override 
public void onCreate(SQLiteDatabase database) { 
    // TODO Auto-generated method stub 
    database.execSQL(DATABASE_CREATE); 
    //database.execSQL(DATABASE_CREATE2); 
} 


    // Adding new Location wise Profile 
public void insertLocWiseProfile(LocWiseProfileBeans loc) { 
    db= this.getWritableDatabase(); 

    ContentValues values = new ContentValues(); 
    values.put(COLUMN1, loc.getLocname()); // Contact Name 
    values.put(COLUMN2, loc.getLattitude()); // Contact Phone Number 
    values.put(COLUMN3, loc.getLongitude()); 
    values.put(COLUMN4, loc.getSelectedprofile()); 
    values.put(COLUMN5, loc.getContactno()); 
    values.put(COLUMN6, loc.getMessage()); 
    //values.put(COLUMN7, loc.getEnabled()); 
    values.put(COLUMN8, loc.getNotificationMessage()); 
    // Inserting Row 
    db.insert(TABLE_NAME, null, values); 
    db.close(); // Closing database connection 
} 


    // Getting All Contacts 
public List<LocWiseProfileBeans> getAllLocWiseProfile() { 
    List<LocWiseProfileBeans> LocWiseProfileList = new ArrayList<LocWiseProfileBeans>(); 
    // Select All Query 
    String selectQuery = "SELECT * FROM " + TABLE_NAME; 

    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 

    // looping through all rows and adding to list 
    if (cursor.moveToFirst()) { 
     do { 
      LocWiseProfileBeans loc= new LocWiseProfileBeans(); 
      //loc.set 
      loc.setId(cursor.getInt(0)); 
      loc.setLocname(cursor.getString(1)); 
      loc.setLattitude(cursor.getDouble(2)); 
      loc.setLongitude(cursor.getDouble(3)); 
      loc.setSelectedprofile(cursor.getString(4)); 
      loc.setContactno(cursor.getString(5)); 
      loc.setMessage(cursor.getString(6)); 
      // loc.setEnabled(cursor.getString(7)); 
      // Adding contact to list 
      LocWiseProfileList.add(loc); 
     } while (cursor.moveToNext()); 
    } 

    // return contact list 
    return LocWiseProfileList; 
} 


@Override 
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) { 
    // TODO Auto-generated method stub 
    Log.w(MySQLiteHelper.class.getName(), "Upgrading database from version " 
      + oldVersion + " to " + newVersion 
      + ", which will destroy all old data"); 
    database.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); 
    onCreate(database); 
} 
public void delete(int value) 
{ 
    try{    
     SQLiteDatabase db= this.getWritableDatabase(); 
     db.delete(TABLE_NAME, COLUMN_ID+"="+value, null); 

} 
    catch(Exception e){} 

} 


public void deleteAll(){ 
    try{ 
    //db.execSQL("delete * from "+ TABLE_NAME); 

     SQLiteDatabase db= this.getWritableDatabase(); 
     db.delete(TABLE_NAME, null, null); 

    }catch(Exception e){} 
} 

public void deleteNyName(String string) 
{ 
    // TODO Auto-generated method stub 
    SQLiteDatabase db= this.getWritableDatabase(); 
     db.delete(TABLE_NAME, COLUMN1 +"=?", new String [] { COLUMN1 }); 
     db.close(); 
} 

}

答えて

1

達成するのは非常に簡単です。メソッドonListItemClick()を実装するだけで、選択された項目を削除し、displayResultList()を再度呼び出す必要があります。例:

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    // The id is your COLUMN_ID in your database table for the selected item 
    // So just delete the item with this id 
    // Call displayResultList() here to repopulate the list without the element 
    // you have deleted and that is it! 
} 

希望します。私はこの

にように私のコードのように、これを使用している

関連する問題