-
09-13-2013, 04:29 PM #11
Junior Member
- Ngày tham gia
- May 2015
- Bài viết
- 0
- mình chưa nghĩ ra việc xử lý click 2 lần, ý mình là chỉ được phép click 1 lần thôi, k được lưu trùng dữ liệu.
- nếu dùng position ở nghe gan day thì bên playlist sẽ lấy cặp key/value như thế nào.
ví dụ mình kick item ở position thứ 3 thì sẽ save được cặp key ("title" + position, title). vậy bên playlist sẽ load như thế nào??
- ý bạn là tạo editor ở bên trong hàm onclick() đó hả?
-
09-13-2013, 04:38 PM #12
Junior Member
- Ngày tham gia
- May 2015
- Bài viết
- 0
- mình nghĩ nếu như vậy thì bạn dùng cơ sở dữ liệu sẽ hay hơn
- theo hướng của bạn, mình nghĩ ra một cách "củ chuối" như này:
+ bạn lưu thêm 1 key/value kiểu string nữa, để lưu vị trí các item nghe gần đây.
cách lưu như sau: mỗi lần click vào 1 item (ko trùng nhé), bạn lấy lại giá trị của key này (giả sử đặt là recent), sau đó bạn ghép thêm vị trí của item mới vào cuối giá trị này (là 1 chuỗi dang 1,2,5,7 chẳng hạn)
+ bên recent playlist, trước hết bạn cũng lấy giá trị của key "recent" ra, phân tích chuỗi để lấy ra được vị trí đã được click trước đó, lúc này sẽ là các item ở vị trí 1,2,5,7 chẳng hạn
thực sự với shareprerence mà để xử lý những "quan hệ" như này thì nó ko tối ưu cho lắm, mình nghĩ bạn nên chuyển sang dùng csdl sẽ hay hơn, dễ xử lý hơn, vì chức năng của bạn có thể có lúc nào đó bạn sẽ muốn mở rộng thêm
tư tưởng của mình "hơi chuối" nhóe, nhưng mình chưa làm kiểu này nên cũng chưa nghĩ ra cách nào tối ưu, mong giúp được bạn hoặc gợi ra 1 hướng mới cho bạn
-
09-13-2013, 04:46 PM #13
Junior Member
- Ngày tham gia
- Mar 2014
- Bài viết
- 0
cảm ơn gabk rất nhièu. mình sẽ cố gắng 1 chút nữa với sharedpreference xem tnào. nếu không chắc cũng sẽ chuyển qua csdl thôi.
mình k hiểu 1 chút là bên playlist sẽ lấy key "recent" phù hợp với bên nghe gần đây như thế nào? 2 biến string này ở 2 activity # nhau mà.
-
09-13-2013, 04:54 PM #14
Junior Member
- Ngày tham gia
- Feb 2015
- Bài viết
- 0
mình ví dụ nhé, ở cái list cho phép chọn item, bạn chọn 3 item 1,2,3, các bước làm như sau:
1- tạo biến string dạng itemstr = "1,2,3", put vào editor kiểu editor.put("recent",itemstr)
2- lưu các giá trị của các item được chọn như sau (minh họa với titile thôi nhé):
editor.put("title " + 1,"abc");
editor.put("title " + 2,"def");
editor.put("title " + 3,"ghe");
sau này, mõi khi click vào 1 item nào đó, giả sử 4, bạn lại lấy ra cái chuỗi "1,2,3" này vào và cộng thêm giá trị 4 vào thành "1,2,3,4", sau đó put lại
3- khi lấy ra, lấy recent trước, mục đích là lấy được cái số để thêm vào sau cái chữ "title " + ->> để có được cái key mình sẽ lấy giá trị.
lấy key recent, được chuỗi là "1,2,3", phân tích chuỗi được 3 giá trị "1", "2", "3"
các key lúc này cần lấy là "title "+ "1" (tương tự +"2", +"3")
làm như này bạn mới biết được cái key nào lưu các giá trị được nghe gần đây.
bạn hiểu ý mình không? xin lỗi bạn vì khả năng giải thích của mình nó hơi kém
-
09-13-2013, 07:00 PM #15
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 1
thanks gabk nhiều nhé. mình cũng đang thực hiện theo hướng ý tưởng của bạn
-
09-14-2013, 06:39 AM #16
Junior Member
- Ngày tham gia
- Apr 2015
- Bài viết
- 0
mình đã thực hiện được. nhưng ngặt 1 nỗi là chưa xử lí được việc click 2 lần vào 1 button.
-
09-14-2013, 03:50 PM #17
Junior Member
- Ngày tham gia
- Feb 2014
- Bài viết
- 0
- cái này thì mình nghĩ là bạn lại lấy cái recent ra, sau đó kiểm tra tham số position (vị trí của item được click) xem có trong cái recent đó ko, nếu có thì thôi ko làm gì nữa, còn nếu không có mới thực hiện như bình thường. đó là cách thứ nhất.
Gửi bởi dr.v
- cách thứ hai là trong lớp rowitem bạn thêm 1 trường boolean gọi tạm là ischoose, nếu 1 item được chọn rồi thì đặt giá trị này bằng true, còn ko vẫn là false. để làm kiểu này thì lúc get giá trị bạn phải để là final thì trong onclick mới dùng được
final rowitem rowitem = getitem(position);
trong hàm onclick, kiểm tra nếu rowitem.ischoose là true thì thôi, ko làm gì nữa, ngược lại thì thực hiện như bình thường
mình nghĩ cách 2 có vẻ hay hơn, bạn thử xem nhé
-
09-14-2013, 04:04 PM #18
Junior Member
- Ngày tham gia
- Mar 2014
- Bài viết
- 3
- mình nghĩ cách 1 khó thực hiện vì trong hàm getview nó thực hiện load các item đồng thời nên rất khó xác định được position của item. trong code mình đã toast cái position của item khi click button thì cái nào cũng ra giá trị 0.
- cách 2 cũng có thể là tốt hơn. nhưng mình thắc mắc là ở đâyy mình click button thì liệu có nhận ra được item nào click k nhỉ.
-
09-14-2013, 04:22 PM #19
Junior Member
- Ngày tham gia
- Mar 2014
- Đang ở
- Hanoi
- Bài viết
- 0
nhận được cả mà, bởi vì button là 1 thành phần của view mà thôi. cái này mình cũng làm nhiều rồi mà
-
09-14-2013, 04:25 PM #20
Junior Member
- Ngày tham gia
- Mar 2015
- Bài viết
- 0
làm gì có chuyện mà click vào button nào cũng ra position = 0. tình huống như của bạn mình cũng làm nhiều rồi, trong tên hàm, thay vì mặc định nó là "int position", bạn thay lại là "final int position" hoặc tạo 1 biến final trong hàm và gán giá trị cho nó bằng position.
Gửi bởi dr.v

Trả lời kèm Trích dẫn
căn hộ chung cư Saigon Pearl được phát triển bởi Vietnam Land SSG LTD tối đa tầm nhìn sống hiện đại nội thất rộng rãi. chung cư Saigon Pearl tối đa tầm nhìn vị trí đẹp thư giãn lí tưởng. Căn hộ kề...
Dự án căn hộ chung cư Saigon Pearl hồ bơi tuyệt đẹp