【问题标题】:How to open PDF viewer(adobe pdf) which in my mobile / emulator如何在我的手机/模拟器中打开 PDF 查看器(adobe pdf)
【发布时间】:2020-09-22 13:41:01
【问题描述】:

当我单击从数据库中检索的文件时,它只会下载。我想从我的移动设备中的 PDF 查看器中打开它

我不知道我应该如何以及在哪里更改或替换代码

这是列表视图

A list view

这是我用来开发的代码

public class ViewFiles extends AppCompatActivity {

    //Variables
    ListView myViewFiles;
    DatabaseReference databaseReference;
    List<String> detail;
    List<uploadFiles> uploadDOCS;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_files);

        //Displaying the toolbar
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        //Assigning all the Variables to ID
        myViewFiles = (ListView) findViewById(R.id.myViewFiles);
        uploadDOCS = new ArrayList<uploadFiles>();

        detail =  new ArrayList<>();

        viewAllFiles();

        //On click option for the list view and open it from pdf
        myViewFiles.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                uploadFiles uploadFiles = uploadDOCS.get(position);

                //Intent intent = new Intent(ViewFiles.this, ViewPdfFiles.class);
                Intent intent = new Intent();
                intent.setType(Intent.ACTION_VIEW);
                intent.setData(Uri.parse(uploadFiles.getUrl()));
                startActivity(intent);
            }
        });
    }

    //View files which in databse
    private void viewAllFiles() {

        databaseReference = FirebaseDatabase.getInstance().getReference("HNDIT").child("1st Year 2nd Sem").child("OOP");
        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                for (DataSnapshot postSnapshot: dataSnapshot.getChildren()){

                    uploadFiles uploadFiles = postSnapshot.getValue(com.example.lms.fileupload.uploadFiles.class);
                    uploadDOCS.add(uploadFiles);
                }

                String[] uploads = new String[uploadDOCS.size()];

                for (int i=0; i < uploads.length; i++){
                    uploads[i] = uploadDOCS.get(i).getName();

                }
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,uploads){
                    @NonNull
                    @Override
                    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
                        View view = super.getView(position, convertView, parent);
                        TextView myText = (TextView) view.findViewById(android.R.id.text1);
                        myText.setTextColor(Color.BLACK);

                        return view;
                    }
                };
                myViewFiles.setAdapter(adapter);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

    }
}

我该如何解决这个问题

有没有办法在app里面打开

Please see this too

【问题讨论】:

    标签: java android firebase pdf viewer


    【解决方案1】:

    https://github.com/barteksc/AndroidPdfViewer 使用这个库。这是将 PDF 加载到应用程序屏幕的最佳方式。

    【讨论】:

      【解决方案2】:

      当我单击从数据库中检索的文件时,它会简单地启动 下载。

      Intent.ACTION_VIEW 将尝试显示 pdf 文件。它要求系统寻找能够打开和查看该文件的Activity。这就是为什么它将开始下载。 只有在您自己的应用程序中没有能够打开文件的特殊 Activity 时才应该这样做。
      因为,在这种情况下,幸运的是你确实有自己的能力 Activity 所以,你应该用 pdf 文件的 uri 来启动 Activity

      Intent intent = new Intent(ViewFiles.this, ViewPdfFiles.class);
      //intent.setType(Intent.ACTION_VIEW);
      intent.putExtra("url", uploadFiles.getUrl());
      startActivity(intent);
      

      【讨论】:

      猜你喜欢
      • 2022-01-22
      • 2012-07-17
      • 2012-06-09
      • 1970-01-01
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 2010-11-11
      • 1970-01-01
      相关资源
      最近更新 更多