Cảm ơn chia sẻ của bạn! Rất hay và dễ hiểu. Cho mình hỏi có cách nào truy suất (Read, Write) Sqlite ở một thư mục khác, không nằm trong thư mục mặc định không? Ví dụ là /storage/data/0/com.exampleKotlin.bh01/files/data01.db
để khắc phục lỗi khi set adapter cho ListView bị crash app, các bạn hãy thêm vào một thuộc tính id tự tăng lúc tạo table, bởi vì cursor cần giá trị này để xác định vị trí từng bản ghi khi set lên Listview, p0?.execSQL("CREATE TABLE SinhVien ( " + " _id INTEGER PRIMARY KEY AUTOINCREMENT, " + " name TEXT NOT NULL, " + " email TEXT NOT NULL " + ");")
Đoạn gọi SimpleCursonAdapter e dùng thì khi chạy app nó bị lỗi k khởi động được. A có cách nào khắc phục k ạ? adapterr = SimpleCursorAdapter( applicationContext, android.R.layout.simple_expandable_list_item_2, rs, arrayOf("User", "email"), intArrayOf(android.R.id.text1, android.R.id.text2), 0 )
hi ad, cảm ơn ad, video rất hay, trong cái hàm fun onContextItemSelected mình không hề thấy truyền vào vị trí của dòng dữ liệu bị xoá, vậy mà bỏ con trỏ rs vào vẫn xoá được, mình không hiểu lắm? có phải vì vậy mà phải dùng CursorAdapter không ad? mỗi lần click vào dòng của listview thì nó tự đổi cái rs cursor sang vị trí tương ứng luôn phải không?
đến đoạn tìm kiếm, thì em cứ typing vào ô search view là nó sẽ văng app ra và dừng chương trình, nhưng em lại không thấy báo lỗi gì, không biết là tại sao ạ :((
sao code phần listview e làm giống như a rồi mà khi chạy thì nó ko hoạt động app luôn nhỉ ? nhưng khi xóa phần đó đi thì chạy bình thường, mn giúp e với :'(((
SimpleCursorAdapter em thấy không được khuyến khích dùng nữa đúng k anh
Год назад
uh e, e tham khảo thông tin dưới nhé : từ phiên bản Android API level 30 (Android 11) trở đi, lớp SimpleCursorAdapter đã bị gắn dấu gạch chân, có nghĩa là không còn được khuyến nghị sử dụng nữa. Thay vào đó, Google khuyến nghị sử dụng CursorAdapter hoặc RecyclerView kết hợp với CursorLoader để hiển thị dữ liệu từ cơ sở dữ liệu trong ứng dụng Android. Lý do đằng sau việc không khuyến khích sử dụng SimpleCursorAdapter là vì nó đã trở nên cũ kỹ và không linh hoạt đủ để đáp ứng các yêu cầu hiện đại của ứng dụng. Sử dụng CursorAdapter hoặc RecyclerView cùng với CursorLoader sẽ cung cấp khả năng tương thích cao hơn với các phiên bản Android mới và cho phép bạn thực hiện các tùy chỉnh và quản lý dữ liệu tốt hơn. Để sử dụng CursorAdapter, bạn cần tạo một lớp con kế thừa từ CursorAdapter và triển khai các phương thức cần thiết như newView(), bindView(), và swapCursor(). Điều này cho phép bạn tùy chỉnh cách hiển thị dữ liệu từ Cursor trong ListView hoặc GridView. Đối với các danh sách dữ liệu phức tạp hơn và mô hình dữ liệu linh hoạt hơn, Google khuyến nghị sử dụng RecyclerView kết hợp với CursorLoader hoặc LoaderManager. Điều này cung cấp khả năng tái sử dụng thành phần, quản lý tốt hơn các vấn đề về hiệu suất và đáp ứng và cung cấp nhiều tùy chọn tùy chỉnh hơn.
anh nghĩ tương lai kotlin có phát triển như java không
Год назад
Ưu tiên của google. Google tuyên bố là sẽ tập trung phát triển kotlin mà. Chẳng qua các lập trình viên cũ đag dùng java họ chưa muốn chuyênt. Nhưng tương lai sớm muộn java cũng sẽ bị thay thế
@ tại e nghe nói kot chậm hơn java và nó chưa làm đc nhiều thứ như người tiền nhiệm java
Год назад+1
@@tunginh9523 code ngắn hơn và nhanh hơn java ấy. Bỏ hết ; rồi. Chẳng qua nó mới ra từ 2017. Vẫn chưa nhiều tài liệu bằng java. Nhưng theo a thì không sớm thì muộn kotlin sẽ là ngôn ngữ chính
@ vậy còn Flutter anh nghĩ sao anh. Theo em tìm hiểu thì tương lai sẽ ưa dùng Framework hơn là một ngôn ngữ nên không biết thằng Kotlin nó cạnh tranh nổi với Flutter không anh nhỉ
@@tunginh9523 Kotlin thiên về cho Android, Java ngày xưa không có Kotlin thì dùng, Kotlin sẽ thay thế Java trong Android, nhưng trong các lĩnh vực khác thì Java vẫn xịn.
Cảm ơn chia sẻ của bạn! Rất hay và dễ hiểu. Cho mình hỏi có cách nào truy suất (Read, Write) Sqlite ở một thư mục khác, không nằm trong thư mục mặc định không? Ví dụ là /storage/data/0/com.exampleKotlin.bh01/files/data01.db
lú quá huhu nhất cái đoạn phải custom kế thừa hồn biết khi nào hiểu hết đây :))
để khắc phục lỗi khi set adapter cho ListView bị crash app, các bạn hãy thêm vào một thuộc tính id tự tăng lúc tạo table, bởi vì cursor cần giá trị này để xác định vị trí từng bản ghi khi set lên Listview, p0?.execSQL("CREATE TABLE SinhVien (
" +
" _id INTEGER PRIMARY KEY AUTOINCREMENT,
" +
" name TEXT NOT NULL,
" +
" email TEXT NOT NULL
" +
");")
a cho em hỏi là khi nào cần dùng application context vậy ạ
Quá tuyệt vời.Nhưng em nghĩ nếu làm theo hướng thực tế kiểu CRUD = các biểu tượng floacting action thì sẽ đẹp mắt và trông cũng thực tế hơn đó ạ
vd hay quá ạ
cám ơn a
ngồi 3 tiếng học vd này mà nhứt nhứt cái đầu haha :v
Đoạn gọi SimpleCursonAdapter e dùng thì khi chạy app nó bị lỗi k khởi động được. A có cách nào khắc phục k ạ?
adapterr = SimpleCursorAdapter(
applicationContext,
android.R.layout.simple_expandable_list_item_2,
rs,
arrayOf("User", "email"),
intArrayOf(android.R.id.text1, android.R.id.text2),
0
)
c tra chatgpt thì sẽ hiểu sao a í đặt tên cột ban đầu là _id mà không phải là ID hay j nhé có lquan đến việc dùng SimpleCursorAdapter() đó
Tuyệt vời 🎉 Mong a tiếp tục ra đầy đủ khoá kotlin
🥰
Thầy cho em hỏi khi em code tới đoạn code phần lvFull thì chạy lên nó báo lỗi và không chạy được
e phải xem nó báo lỗi gì, ngoài ra dùng thêm chatgpt để có gợi ý
discord.gg/38QeRpe2HQ
nếu chưa có tài khoản thì a có chia sẻ free ở đây
mình cũng bị như thế, tại dùng phiên bản mới binding.root, không biết bạn có vậy không, với bạn sửa như nào ạ
hi ad, cảm ơn ad, video rất hay, trong cái hàm fun onContextItemSelected mình không hề thấy truyền vào vị trí của dòng dữ liệu bị xoá, vậy mà bỏ con trỏ rs vào vẫn xoá được, mình không hiểu lắm? có phải vì vậy mà phải dùng CursorAdapter không ad? mỗi lần click vào dòng của listview thì nó tự đổi cái rs cursor sang vị trí tương ứng luôn phải không?
anh ơi em bị một lỗi "cannot resolve class SearchView" khi dùng search view , có cách nào để sửa lỗi này không ạ ?
cảm ơn e, chúc e học tốt
chuyen tag SearchView thanh android.widget.SearchView
đến đoạn tìm kiếm, thì em cứ typing vào ô search view là nó sẽ văng app ra và dừng chương trình, nhưng em lại không thấy báo lỗi gì, không biết là tại sao ạ :((
bạn gửi code về mail, mình xem giúp cho
sao code phần listview e làm giống như a rồi mà khi chạy thì nó ko hoạt động app luôn nhỉ ? nhưng khi xóa phần đó đi thì chạy bình thường, mn giúp e với :'(((
SimpleCursorAdapter em thấy không được khuyến khích dùng nữa đúng k anh
uh e, e tham khảo thông tin dưới nhé :
từ phiên bản Android API level 30 (Android 11) trở đi, lớp SimpleCursorAdapter đã bị gắn dấu gạch chân, có nghĩa là không còn được khuyến nghị sử dụng nữa. Thay vào đó, Google khuyến nghị sử dụng CursorAdapter hoặc RecyclerView kết hợp với CursorLoader để hiển thị dữ liệu từ cơ sở dữ liệu trong ứng dụng Android.
Lý do đằng sau việc không khuyến khích sử dụng SimpleCursorAdapter là vì nó đã trở nên cũ kỹ và không linh hoạt đủ để đáp ứng các yêu cầu hiện đại của ứng dụng. Sử dụng CursorAdapter hoặc RecyclerView cùng với CursorLoader sẽ cung cấp khả năng tương thích cao hơn với các phiên bản Android mới và cho phép bạn thực hiện các tùy chỉnh và quản lý dữ liệu tốt hơn.
Để sử dụng CursorAdapter, bạn cần tạo một lớp con kế thừa từ CursorAdapter và triển khai các phương thức cần thiết như newView(), bindView(), và swapCursor(). Điều này cho phép bạn tùy chỉnh cách hiển thị dữ liệu từ Cursor trong ListView hoặc GridView.
Đối với các danh sách dữ liệu phức tạp hơn và mô hình dữ liệu linh hoạt hơn, Google khuyến nghị sử dụng RecyclerView kết hợp với CursorLoader hoặc LoaderManager. Điều này cung cấp khả năng tái sử dụng thành phần, quản lý tốt hơn các vấn đề về hiệu suất và đáp ứng và cung cấp nhiều tùy chọn tùy chỉnh hơn.
anh nghĩ tương lai kotlin có phát triển như java không
Ưu tiên của google. Google tuyên bố là sẽ tập trung phát triển kotlin mà. Chẳng qua các lập trình viên cũ đag dùng java họ chưa muốn chuyênt. Nhưng tương lai sớm muộn java cũng sẽ bị thay thế
@ tại e nghe nói kot chậm hơn java và nó chưa làm đc nhiều thứ như người tiền nhiệm java
@@tunginh9523 code ngắn hơn và nhanh hơn java ấy. Bỏ hết ; rồi.
Chẳng qua nó mới ra từ 2017. Vẫn chưa nhiều tài liệu bằng java. Nhưng theo a thì không sớm thì muộn kotlin sẽ là ngôn ngữ chính
@ vậy còn Flutter anh nghĩ sao anh. Theo em tìm hiểu thì tương lai sẽ ưa dùng Framework hơn là một ngôn ngữ nên không biết thằng Kotlin nó cạnh tranh nổi với Flutter không anh nhỉ
@@tunginh9523 Kotlin thiên về cho Android, Java ngày xưa không có Kotlin thì dùng, Kotlin sẽ thay thế Java trong Android, nhưng trong các lĩnh vực khác thì Java vẫn xịn.