Cần giúp đỡ làm ứng dụng đọc truyện trên android

Tình hình là em đã tạo 1 list view ,và có file text trong thư mục raw, em đã làm được, khi chạm vào item nào trong list thì sẽ hiển thị ra được tên của item đó, trong layout thứ 2. :frowning: giờ em muốn truyền nội dung của file text vào sang trang bên kia, tức là tùy từng intent mà sẽ đọc 1 file text khác nhau :frowning: mà không biết làm thế nào, ai đó giúp đỡ em với,
em thực sự không biết làm, em đã cố làm 2 cách :
1 là sử dụng if else để if từng vị trí thì sẽ mở file nào nhưng nó không hoạt động.
2 là em khai ra 1 mảng int, khai từng đường dẫn cho file text trong thư mục raw rồi đặt định danh gọi nó ra theo vị trí position giống như cách hiển thị tên trong item đã nói ở bên trên nhưng cũng không được, :frowning: ,
em thực sự rất ngu :frowning:, mong các pro giúp đỡ, đừng chửi em tội nghiệp, em ăn chửi nhiều rồi , các pro tốt bụng :smiley: có thể skype giúp em với, vì nó có thể show màn hình :frowning: , không thì chỉ cho em trên đây cũng được , cảm ơn mọi người.

Cách 2 đúng rồi đấy !. Nếu sử dụng listview thì bạn nên sử dụng list kiểu object luôn cho dễ set, get dữ liêu. Nếu không được thì bạn show log lỗi lên đây cho anh em xem nha :slight_smile:

1 Like

Em thực sự kém cỏi lắm, không hiểu các thuật ngữ luôn, bác có thể ví dụ khong ạ

bác có dùng skype không bác, em có thể show màn hình 1 chút được không, nhiều layout vs class quá, e k chụp hết đc, vs lại em nghĩ cách của em là không đúng, phải dùng cách gì đó khác

Cần gì phải sho hết class, sho cái chỗ bạn làm tính năng đó thôi. Bạn học list trong android và getter setter, nó như thế này á:

public class Item{
   string file_name, noi_dung;
   
   public getFileName()  { return file_name }
   public getNoiDung()  { return noi_dung }
 
   public setFileName(name)  { this.file_name = name }
   public setNoidung(noidung)  { this.noi_dung = noidung}  
}

Còn list là :

// Phải làm bước này trước bước lấy dữ liệu và gán cho adapter nhé bro.
List<Item> dulieu_listview = new ArrayList()<>;

Custom dữ liêu, mình chỉ ví dụ hàm còn bạn lấy dữ liệu ở đâu thì bạn lấy nhé.

Item item = new Item());
item.setRealName("Naruto"); // Biến string Naruto bạn có thể lấy từ databse
item.setNoiDung("Noi dung cua naruto"); // Tương tự như biến string trên nha 

// Sau khi set dữ liệu bạn sẽ lấy cái list kiểu item bạn đã tạo ở trên nhé:
dulieu_listview.add(item);

// Sau đó custom một adapter dự trên dulieu_listview.
// Khi người dùng click vào từng item thì bạn get position ra chắc là bạn biết chứ.
//Lấy nd
var file_name = dulieu_listview.get(position).getNoiDung();
// Cuối cùng thì bạn dùng itent truyền đi bình thường. 

Giống như cách 2 của bạn nhưng làm kiểu ở trên thì dễ manager dữ liệu hơn :slight_smile: Không có máy tính nên code trên đây luôn nên mong dân tình thông cảm :smile:

item.setNoiDung(“Noi dung cua naruto”); // Tương tự như biến string trên nha

// Sau khi set dữ liệu bạn sẽ lấy cái list kiểu item bạn đã tạo ở trên nhé:

bác ơi, em không biết bác dùng file gì nhưng mà em thấy muốn mở được file txt thì cần 1 hàm


như này , mà em thực sự không biết lấy kết quả để add thế nào luôn, item trong này khá lằng nhằng, nó không R.raw.truyen là ra được :frowning: , em đang muôn làm if else mà thực sự cũng chả hiểu if else trong này hoạt động kiểu gì

như bác đã thấy , cái nt chính là cái mà sẽ được sửa bằng dữ liệu của “x” , em so sánh cái nt đấy với từng tên 1 để đọc 1 file text khác nhau nhưng không hiểu sao nó không hoạt động, cũng không báo lỗi gì, phát điên mất, thời gian của em không còn nhiều, mà cô giáo thì không muốn hướng dẫn , giờ người ta chỉ muốn dậy những cái trên lớp thôi, kiến thức thực sự không có

pro có facebook. skype hay gì để liên lạc không, trên diễn đàn này nhận tin từ pro khá lâu :frowning: , em sắp nộp thực tập cơ sở , cô giáo em thì mặc kệ em , em biết xin sự giúp đỡ là không tốt nhưng em hết cách rồi :frowning:

ở cái ảnh trên em so sánh vs cái nt, y hệt với tên từng item em đã khai


nhưng không được

Ý bạn là truyền kiểu “R.raw.” à, đấy là kiểu int đấy bạn. Còn muốn lấy dữ liệu từ int thì dùng getActivity.getResource( dữ liệu truyền từ intent ).

thế còn hàm đọc file sẽ để bên layout thứ 2 hả bác
hay không cần hàm , chỉ cần gọi định dnah như bình thường

bác ơi, em kiếm được 1 hàm đọc file text trên mạng nhưng em không hiểu bản chất, bác luận hộ em với , em đã thử tạo ra 11 cái activity mỗi activity mở 1 file mà không hiểu sao nó cứ mở duy nhất 1 file đã mở từ đầu, chắc nó đã lưu dữ liệu vào 1 chỗ gì đấy, đúng là không hiểu bản chất làm thủ công cũng không được


chả hiểu sao luôn, em thử xóa cái file text đấy đi thì nó lại đọc file khác, nó đọc từ dưới trở lên, tất cả các activity đều đọc file đấy, mà rõ ràng em đã getResource mỗi activity 1 file rồi :(, em còn thay đổi tên data các kiểu tên trong từng hàm nhưng nó vẫn vậy

đây là hàm đọc file em thấy trên mạng, bực quá newbie không post nhiều ảnh 1 lúc được

em làm thủ công tạo từng intent một mà vẫn k đc

Mình ví dụ có truyện naruto đi, có đường dẫn là int file = R.raw.Naruto. Xong bạn set trong item get/set như trên -> thêm vào dulieu_listview. Khi click thì truyền dulieu_listview.get(position).getFilePath vào intent. Qua bên itent bên kia bạn lấy biến int (FilePath) vừa truyền. Xong bạn sử dụng hàm lấy lấy dữ liệu rồi xong .

Sao mà bạn có thể start cùng lúc nhiều intent được mà hỏi sao nó ra như intent ban đầu !

Nếu có lỗi thì show lỗi lên đây xem để mình còn biết sửa nữa !

pro ơi, em làm được rồi, em đã tự làm được rồi, cảm ơn pro, em sướng quá :smiley: , cảm ơn pro nhiều, em đã thực hiện if else thành công, đúng như ý tưởng mà em vẫn muốn, em không biết đóng gói intent nên em đã quyết định if else , dù sao cảm ơn pro nhiều

dù cách này khá dốt nát, không được chuyên nghiệp như pro nhưng em đã làm được rồi, em đang rất vui vì dù sao cũng tự em nghĩ ra :smiley:

Nếu dùng cách như bạn thì sẽ hơi khó khăn khi dữ liệu nhiều nên bạn cố gắng nghĩ cách hay hơn nhé !

dạ vâng, em sẽ cố gắng nghiên cứu intent, pro nhiệt tình quá, :smiley: , liệu pro có thể cho em thông tin gì đó để liên lạc không, em rất muốn được pro chỉ dạy, em sẽ không dựa dẫm nhiều đâu, em vẫn sẽ nghĩ cách chứ không đưa bài ra là hỏi luôn đâu

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?