jeiidii
jeiidii

Reputation: 87

Remove item from ListView with database adapter

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

Answers (1)

Sridhar
Sridhar

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

Related Questions