SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

एंड्रॉइड में लिस्ट व्यू में क्वेरी हटाएं और रीफ्रेश करें (एसक्लाइट)

<ब्लॉकक्वॉट>

सबसे पहले, मैं डेटाबेस से पुनर्प्राप्त लेनदेन (पंक्ति) को हटाने में सक्षम नहीं हूं

लाइन 61 arg0.getItemAtPosition(arg2) . का परिणाम कास्ट कर रहा है Cursor . के लिए , लेकिन वापसी प्रकार शायद HashMap . है (जैसा कि लॉगकैट आउटपुट में कहता है)। आम तौर पर आपको एक Cursor मिलता है डेटाबेस क्वेरी से।

यदि आप प्रत्येक डेटाबेस पंक्ति के लिए आईडी को HashMap . में डालते हैं जब आप इसे बना रहे हों, तब आप उस आईडी को अपने deleteTransaction() पर पास कर सकेंगे अपने onClick . में कॉल करें प्रतिस्पर्धा। तो, आपको चाहिए

temp.put("Id", localCursor.getInt(localCursor.getColumnIndex("_id")));

में getAllTransaction() , और फिर अपना onClick() . संशोधित करें ऐसा कुछ करने का तरीका:

localDbCrud.open();
HashMap itemMap = (HashMap)localAdapter.getItem(arg2);
int item_id = Integer.parseInt((String)itemMap.get("Id"));
DbCrud.deleteTransaction(item_id);
localDbCrud.close();

मैं arg2 . का नाम बदलने का भी सुझाव दूंगा (और अन्य) स्पष्ट नाम रखने के लिए ताकि कोड का पालन करना आसान हो।

<ब्लॉकक्वॉट>

दूसरे, मुझे यह जानने की जरूरत है कि प्रविष्टि को हटाने के बाद सूचीदृश्य को कैसे ताज़ा किया जाए

आप notifyDataSetChanged() पर कॉल कर सकते हैं ListView . को रीफ़्रेश करने के लिए अपने एडॉप्टर पर आपके द्वारा डेटासेट में परिवर्तन करने के बाद।

संपादित करें:कृपया ध्यान दें कि SimpleAdapter स्थिर डेटा के लिए है, इसलिए आपका माइलेज भिन्न हो सकता है। सबसे अच्छा समाधान शायद एक अलग प्रकार के एडेप्टर पर स्विच करना है, जैसे कि ArrayAdapter , या एक नया SimpleAdapter बनाएं हर बार जब आप डेटासेट बदलते हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite - संबंध बनाएं

  2. एंड्रॉइड में सूचीदृश्य आइटम के क्लिक पर डेटाबेस से आईडी कैसे प्राप्त करें?

  3. पंक्ति को हटाने का प्रयास करते समय SQLite अपवाद

  4. कैसे Substr () SQLite में काम करता है

  5. कॉर्डोवा का उपयोग करके प्रोजेक्ट फ़ाइल में स्थानीय रूप से संग्रहीत स्क्लाइट डीबी फ़ाइल को कैसे एक्सेस और अपडेट करें [संपत्ति फ़ोल्डर]