AndroidPdfViewer icon indicating copy to clipboard operation
AndroidPdfViewer copied to clipboard

how can i use recycle view to get pdf files from assets

Open kingdoom0 opened this issue 5 years ago • 1 comments

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

kingdoom0 avatar Jul 15 '20 08:07 kingdoom0

Did you find the solution to this...? I would like to learn too.

Mvuladk avatar Aug 10 '23 07:08 Mvuladk