Reputation: 87
I have My ListView and database adapter. and if user click somewhere in listview i want to have a dialog box, and if user click "ok" button i want to remove the item that user clicks how is this possible?
This is for my project.I ask some question already and really appreciate that you guys helping me for this project thanks so much
This is my listview .java file
public class listview extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
SQLiteDatabase db = openOrCreateDatabase("Orders.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);
Cursor crs = db.rawQuery("SELECT * FROM OrderedList", null);
ListView listView = (ListView) findViewById(R.id.listView);
String[] column1 = new String[crs.getCount()];
double[] column2 = new double[crs.getCount()];
int[] column3 = new int[crs.getCount()];
double[] v2 = new double[crs.getCount()];
int i = 0;
Double sum = 0.0;
int list_height = 0;
while (crs.moveToNext()) {
String item_name = crs.getString(crs.getColumnIndex("Food"));
double item_price = crs.getDouble(crs.getColumnIndex("Price"));
int temp_item_quantity = crs.getInt(crs.getColumnIndex("Quantity"));
column1[i] = item_name;
column2[i] = item_price;
column3[i] = temp_item_quantity;
v2[i] = column2[i];
sum += v2[i];
i++;
}
crs.close();
ListView_Adapter adapter = new ListView_Adapter(this, column1, column2, column3);
listView.setAdapter(adapter);
TextView ttotal = (TextView)findViewById(R.id.ttotal);
String initialtotal = String.valueOf(sum);
ttotal.setText("P " + initialtotal);
}
and this is my listview adapter
public class ListView_Adapter extends ArrayAdapter<String> {
private final Context context;
private String[] column1;
private double[] column2;
private int[] column3;
public ListView_Adapter(Context context, String[] column1, double[] column2, int[] column3) {
super(context, R.layout.list_adapter, column1);
this.context = context;
this.column1 = column1;
this.column2 = column2;
this.column3 = column3;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_adapter, parent, false);
}
TextView t1 = (TextView) convertView.findViewById(R.id.t1);
TextView t2 = (TextView) convertView.findViewById(R.id.t2);
TextView t3 = (TextView) convertView.findViewById(R.id.t3);
t1.setText(column1[position]);
t2.setText("₱" + column2[position]);
t3.setText("" + column3[position]);
return convertView;
}
}
and this is my databasehelper
public class MDB extends SQLiteOpenHelper {
public MDB(Context context, String dbname, CursorFactory factory, int dbversion) {
super(context, dbname, factory, dbversion);
}
SQLiteDatabase db;
Cursor crs;
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table if not exists OrderedList(Food varchar, Price real, Quantity int);");
}
public void audittrail(){
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
Upvotes: 1
Views: 48
Reputation: 668
You can write onItemClickListener for your ListView.
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//call dialog
// you can set ok(positive) and cancel(negative) button
// for the ok button you can remove your listview item
//just do google
}
});
Upvotes: 1