کلیدستان

نسخه‌ی کامل: مشکل در حذف یک سطر از لیست
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام دوستان من یک برنامه ای دارم که در ان اطلاعاتی ک در دیتا بیسم ذخیره شده را در لیت ویو برای نمایش میفرستم.
اکنون مشکلم این است ک هرگاه از لیست ویو یک ایتم حذف میکنم میخاهم از دیتا بیس هم حذف شود ولی نمیشه کدهای کلاس های مربوطه به همراه خطایی ک میده در ضمیمه هست لطفا راهنمایی کنید

کد:
 //حذف از جدول
    public void Remove(long id) {

        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(tbl_data, Id + "=" + id, null);

        //db.delete(tbl_data, Id + " =?", new String[]{ String.valueOf(id) });
        // String object = String.valueOf(id);
        //  db.execSQL("DELETE FROM tbl_data WHERE ID='" + object + "'");

    }

کدهای داخل اکتیویتی اصلیم:

کد:
//dakhele on creat
   //برای حذف کردن 
        lst_data.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                dbh.getWritableDatabase();
                // dbh.Remove(position);
                removeItemFromList(position);

            }
        });



 // متدی برای حذف از لیست ویو
    protected void removeItemFromList(int position) {
        final int deletePosition = position;

        AlertDialog.Builder alert = new AlertDialog.Builder(
                MainActivity.this);

        alert.setTitle("حذف");
        alert.setMessage("آیا میخواهید این اعلان حذف شود؟");
        alert.setPositiveButton("بله", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {

                // در صورت زدن دکمه بله
                dbh.Remove(deletePosition);
                DataLList.remove(deletePosition);
                adapter.notifyDataSetChanged();
                //adapter.notifyDataSetInvalidated();
                //adapter.notifyDataSetChanged();

            }
        });
        alert.setNegativeButton("لغو", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                dialog.dismiss();
            }
        });

        alert.show();

    }

    //متدی برای استفاده از متد پر کردن لیست ویو
    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        DataLList = new ArrayList<HashMap<String, String>>();

        FillData();

    }


    // متد پر کردن لیست ویو
    private void FillData()
    {
        db = dbh.getReadableDatabase();
        Cursor cursors = db.rawQuery("select * from " + dbh.tbl_data, null);

        String msg;

        String datetime;

        for (int i = 0; i < cursors.getCount(); i++) {
            cursors.moveToNext();
            HashMap<String, String> map = new HashMap<String, String>();
            msg = cursors.getString(cursors.getColumnIndex("msg"));
            datetime = cursors.getString(cursors.getColumnIndex("datetime"));
            // list = cursors.getString(cursors.getColumnIndex("list"));
            map.put("msg", msg);
            map.put("datetime", datetime);

            DataLList.add(map);

        }
        adapter = new mozhgan.Test3.ListAdapter(this, DataLList);
        lst_data.setAdapter(adapter);
    }

داخل کلاس آداپتور:

کد:
  public View getView(int position, View convertView, ViewGroup parent) {

        // View row = null;
        LayoutInflater inflater = activity.getLayoutInflater();
        ViewHolder holder;
        // LayoutInflater inflater = activity.getLayoutInflater();

        if (convertView == null) {
            convertView = inflater.inflate(R.layout.list_row, null);
            holder = new ViewHolder();
            holder.txtFirst = (TextView) convertView.findViewById(R.id.title);
            holder.txtSecond = (TextView) convertView.findViewById(R.id.date);
            /*  holder.txtThird = (TextView) convertView
                      .findViewById(R.id.list_list);*/

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        HashMap<String, String> map = list.get(position);
        holder.txtFirst.setText(map.get("msg"));
        holder.txtSecond.setText(map.get("datetime"));