AndroidPdfViewer
AndroidPdfViewer copied to clipboard
how can i use recycle view to get pdf files from assets
I tried a lot to use Recycle View and when pressed it opens a specific file inside the PDF View but all attempts failed until I tried to use Text View but also I couldn't do it please help This is the code you used, but after converting the file to Textview
### main activity
` protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
List<Book> bookList = new ArrayList<>();
Book book2 = new Book() ;
book2.setBookName("jjjjjjjjjjjjjjjj");
book2.setBookWriter("hgaa");
book2.setBookImage(R.drawable.rec_img);
book2.setBook("file:///android_asset/testtext.txt");
Book book3 = new Book();
book3.setBookName("sssssssss");
book3.setBookWriter("ssssssssssss");
book3.setBookImage(R.drawable.main_bk);
bookList.add(book2);
bookList.add(book3);
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.rv);
BookAdapter adapter = new BookAdapter(bookList,this);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
recyclerView.setItemAnimator(new DefaultItemAnimator());
}
`
book adaptor
`
public class BookAdapter extends RecyclerView.Adapter<BookAdapter.BookHolder> {
private List<Book> bookList;
private Context context ;
public BookAdapter(List<Book> bookList, Context context) {
this.bookList = bookList;
this.context = context;
}
@NonNull
@Override
public BookHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View row = LayoutInflater.from(parent.getContext()).inflate(R.layout.tex_row,parent,false);
BookHolder holder = new BookHolder(row) ;
return holder ;
}
@Override
public void onBindViewHolder(@NonNull BookHolder holder, int position) {
final Book book = bookList.get(position) ;
holder.BookName.setText(book.getBookName());
holder.BookWriter.setText(book.getBookWriter());
holder.BookImage.setImageResource(book.getBookImage());
holder.relativeLayout.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
Intent intent = new Intent(context,MyView.class).setAction(book.getBook());;
context.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return bookList.size();
}
public class BookHolder extends RecyclerView.ViewHolder {
TextView BookName, BookWriter ;
ImageView BookImage ;
RelativeLayout relativeLayout;
TextView BookView ;
public BookHolder(@NonNull View itemView) {
super(itemView);
BookName = (TextView) itemView.findViewById(R.id.book_name);
BookWriter = (TextView) itemView.findViewById(R.id.writer);
BookImage = (ImageView) itemView.findViewById(R.id.book_image);
relativeLayout = (RelativeLayout) itemView.findViewById(R.id.row);
BookView = (TextView) itemView.findViewById(R.id.txtFile);
}
}
`
### book content
`
public class Book {
private String bookName ;
private String bookWriter ;
private int bookImage ;
private String book ;
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getBookWriter() {
return bookWriter;
}
public void setBookWriter(String bookWriter) {
this.bookWriter = bookWriter;
}
public int getBookImage() {
return bookImage;
}
public void setBookImage(int bookImage) {
this.bookImage = bookImage;
}
public String getBook() {
return book;
}
public void setBook (String book) {
this.book = book;
}
} ` my view activity
` public class MyView extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_myview);
TextView txtfile = (TextView) findViewById(R.id.txtFile);
Intent intent= getIntent() ;
String thefile = intent.getStringExtra("book") ;
if (getIntent().getAction()!=null){
thefile=getIntent().getAction();
}
txtfile.setText(thefile);
}
`
### i want to change text view to pdf view and can get pdf files from assets on click recycle view
Did you find the solution to this...? I would like to learn too.