繁体   English   中英

无法打开在Firebase上载的pdf文件

[英]Unable to open pdf file which uploaded on firebase

我已经将pdf文件上传到了Firebase,也能够在列表视图中检索它,但是当我单击列表视图文件时,它无法打开

我已经将pdf文件上传到了Firebase,也能够在列表视图中检索它,但是当我单击列表视图文件时,它无法打开

我已经将pdf文件上传到了Firebase,也能够在列表视图中检索它,但是当我单击列表视图文件时,它无法打开

package com.example.studentcoordinator;

import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;
import java.util.List;

public class Viewuploadedfiles extends AppCompatActivity {

    ListView viewuploadedfiles;
    DatabaseReference databaseReference;
    List<uploadPdf> uploadPdfs;

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

        viewuploadedfiles = findViewById(R.id.listuploadedfiles);
        uploadPdfs = new ArrayList<>();

        viewAllFiles();

        viewuploadedfiles.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                uploadPdf uploadPdf = uploadPdfs.get(position);

                Intent intent = new Intent();
                intent.setType(Intent.CATEGORY_OPENABLE);
                intent.setData(Uri.parse(uploadPdf.getUrl()));
                startActivity(intent);
            }
        });


    }

    private void viewAllFiles() {

        databaseReference = FirebaseDatabase.getInstance().getReference("uploads");
        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

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

                    uploadPdf uploadPdf = postSnapshot.getValue(com.example.studentcoordinator.uploadPdf.class);
                    uploadPdfs.add(uploadPdf);

                }

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

                for (int i = 0; i < uploads.length; i++) {

                    uploads[i] = uploadPdfs.get(i).getName();

                }

                ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, uploads) {

                    @Override
                    public View getView(int position, View convertView, ViewGroup parent) {

                        View view = super.getView(position, convertView, parent);

                        TextView myText = view.findViewById(android.R.id.text1);
                        myText.setTextColor(Color.BLACK);

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

            ;

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

            }
        });
    }
}

它应该打开列表视图中列出的PDF文件,而不是将其重定向到上一个活动

看来您的Intent不会引导PDF使用读取PDF文件的应用程序或读取PDF文件的网站打开。 这就是为什么它只是回到上一个活动。

要在浏览器中打开pdf,

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(pdf_url));
startActivity(browserIntent);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM