انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در حذف یک سطر از لیست

مشکل در حذف یک سطر از لیست

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

کد:
 //حذف از جدول
    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"));

       


فایل‌های پیوست

عکس(ها)
   
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان