I have created a small application to record students university assignments. The user can create an assignment which is then displayed in a listview in another activity. When the user clicks on an individual item in the listview, a dialogue opens which either allows them to delete this assignment or cancel and return. I cant see where I am going wrong, the assignment wont delete from the database. Any suggestions where I am going wrong??
//My delete information method from my dbhelper class
public void deleteInformation(String assID, SQLiteDatabase sqLiteDatabase){
String selection = ASSIGNMENT_ID+" LIKE ?";
String [] selectionArguments = {assID};
sqLiteDatabase.delete(TABLE_NAME_ASSIGNMENT,selection,selectionArguments);
}
//My view assignments class which I use to view the assignments in a listview public class ViewAssignments extends ActionBarActivity implements AdapterView.OnItemSelectedListener { ListView listView; SQLiteDatabase sqLiteDatabase; DbHelper dbHelper; ListDataAdapter listDataAdapter; Spinner spinner; String noteid;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_assignments);
dbHelper = new DbHelper(getApplicationContext());
sqLiteDatabase = dbHelper.getReadableDatabase();
spinner=(Spinner)findViewById(R.id.spinnerAssignments);
loadSpinnerData();
}
private void loadSpinnerData() {
// database handler
DbHelper db = new DbHelper(getApplicationContext());
// Spinner Drop down elements
List<String> lables = db.getAssignmentSubjects();
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, lables);
// Drop down layout style - list view with radio button
dataAdapter.setDropDownViewResource(android.R.layout.simple_list_item_checked);
// attaching data adapter to spinner
spinner.setAdapter(dataAdapter);
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
listView = (ListView) findViewById(R.id.listView2);
listDataAdapter = new ListDataAdapter(getApplicationContext(), R.layout.row_layout_listview);
listView.setAdapter(listDataAdapter);
// On selecting a spinner item
String label = parent.getItemAtPosition(position).toString();
Toast.makeText(getApplicationContext(), label, Toast.LENGTH_LONG).show();
// Showing selected spinner item
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = dbHelper.getSelectedAssignments(label, db);
/*listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
AlertDialog.Builder builder = new AlertDialog.Builder(viewAssignments.this);
builder.setCancelable(true);
builder.setIcon(R.drawable.iconpic);
builder.setTitle("Options");
builder.setMessage("Working on it!");
builder.show();
}
});*/
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, final long id) {
dbHelper = new DbHelper(getApplicationContext());
sqLiteDatabase = dbHelper.getReadableDatabase();
AlertDialog.Builder builder = new AlertDialog.Builder(viewAssignments.this);
builder.setCancelable(true);
builder.setIcon(R.drawable.iconpic);
builder.setTitle("Are you sure you want to delete?");
builder.setNegativeButton("Yes",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
long passid = id;
dbHelper.deleteInformation(String.valueOf(passid),sqLiteDatabase);
}
});
builder.setPositiveButton("Cancel",null);
builder.show();
Toast.makeText(viewAssignments.this,"You selected : " + position,Toast.LENGTH_SHORT).show();
dbHelper.deleteInformation(String.valueOf(id),sqLiteDatabase);
}
});
if (cursor.moveToFirst()) {
do {
String module, assignment, dueDate, weighting, notes;
module = cursor.getString(1);
assignment = cursor.getString(3);
dueDate = cursor.getString(4);
weighting = cursor.getString(2);
notes = cursor.getString(5);
DataProvider dataProvider = new DataProvider(weighting,module,assignment,dueDate,notes);
listDataAdapter.add(dataProvider);
registerForContextMenu(listView);
}while(cursor.moveToNext());
}
cursor.close();
System.out.print(label);
;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
Aucun commentaire:
Enregistrer un commentaire