Android学习之 SQLite 与 ListView

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Android Studio连接SQLiteListView的删除代码: 1. 在布局文件中添加ListView: ``` <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="wrap_content"/> ``` 2. 在MainActivity.java中,定义一个ArrayList和一个CustomAdapter: ``` public class MainActivity extends AppCompatActivity { private ArrayList<Item> itemList; private CustomAdapter customAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); itemList = new ArrayList<>(); customAdapter = new CustomAdapter(this, itemList); ListView listView = findViewById(R.id.listView); listView.setAdapter(customAdapter); } } ``` 3. 定义一个Item类,包含需要显示的数据: ``` public class Item { private int id; private String name; private String description; public Item(int id, String name, String description) { this.id = id; this.name = name; this.description = description; } public int getId() { return id; } public String getName() { return name; } public String getDescription() { return description; } } ``` 4. 定义一个CustomAdapter类,用于为ListView提供数据: ``` public class CustomAdapter extends BaseAdapter { private Context context; private ArrayList<Item> itemList; public CustomAdapter(Context context, ArrayList<Item> itemList) { this.context = context; this.itemList = itemList; } @Override public int getCount() { return itemList.size(); } @Override public Object getItem(int position) { return itemList.get(position); } @Override public long getItemId(int position) { return itemList.get(position).getId(); } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if (view == null) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate(R.layout.list_item, null); } TextView nameTextView = view.findViewById(R.id.nameTextView); TextView descriptionTextView = view.findViewById(R.id.descriptionTextView); Item item = itemList.get(position); nameTextView.setText(item.getName()); descriptionTextView.setText(item.getDescription()); return view; } public void removeItem(int position) { itemList.remove(position); notifyDataSetChanged(); } } ``` 5. 在MainActivity.java中,添加一个方法用于从SQLite数据库中加载数据并显示在ListView中: ``` private void loadItems() { itemList.clear(); DatabaseHelper databaseHelper = new DatabaseHelper(this); SQLiteDatabase database = databaseHelper.getReadableDatabase(); Cursor cursor = database.rawQuery("SELECT * FROM items", null); if (cursor.moveToFirst()) { do { int id = cursor.getInt(cursor.getColumnIndex("id")); String name = cursor.getString(cursor.getColumnIndex("name")); String description = cursor.getString(cursor.getColumnIndex("description")); Item item = new Item(id, name, description); itemList.add(item); } while (cursor.moveToNext()); } cursor.close(); database.close(); customAdapter.notifyDataSetChanged(); } ``` 6. 在MainActivity.java的onCreate方法中调用loadItems方法,以便在应用程序启动时加载数据: ``` @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); itemList = new ArrayList<>(); customAdapter = new CustomAdapter(this, itemList); ListView listView = findViewById(R.id.listView); listView.setAdapter(customAdapter); loadItems(); } ``` 7. 在CustomAdapter类中添加一个方法removeItem,用于从ListViewSQLite数据库中删除项目: ``` public void removeItem(int position) { itemList.remove(position); notifyDataSetChanged(); DatabaseHelper databaseHelper = new DatabaseHelper(context); SQLiteDatabase database = databaseHelper.getWritableDatabase(); int id = itemList.get(position).getId(); database.delete("items", "id = ?", new String[]{String.valueOf(id)}); database.close(); } ``` 8. 在MainActivity.java中,为ListView添加一个OnItemLongClickListener,以便在长按列表项时进行删除操作: ``` listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { customAdapter.removeItem(position); return true; } }); ``` 这样,当用户长按ListView中的项时,它将从ListViewSQLite数据库中删除。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值