java - 无法打开在 firebase 上上传的 pdf 文件

标签 java android

我已将 pdf 文件上传到 firebase,也能够在 ListView 中检索它,但是当我单击 ListView 文件时,它不会打开

我已将 pdf 文件上传到 firebase,也能够在 ListView 中检索它,但是当我单击 ListView 文件时,它不会打开

我已将 pdf 文件上传到 firebase,也能够在 ListView 中检索它,但是当我单击 ListView 文件时,它不会打开

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) {

            }
        });
    }
}

它应该打开 ListView 中列出的 PDF 文件,而不是在之前的 Activity 中重定向我

最佳答案

看来您的 Intent 并未指示 PDF 使用读取 PDF 文件的应用程序或读取 PDF 文件的网站打开。这就是为什么它只是返回到之前的 Activity 。

要在浏览器中打开 pdf,

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

关于java - 无法打开在 firebase 上上传的 pdf 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56990125/

相关文章:

java - 通过Java解决统计概率问题?

java - Mockito、验证和 HashMap : Argument(s) are different

android - Material Complex UI with Coordinate layout + Tablayout + Viewpager +recyclerview

android - 在 CollapsingToolbarLayout 中设置 minHeight 没有任何效果

java - 在 Java 中将时间戳作为参数传递的问题

java - Struts2 文本字段中的 Onchange

java - Java中的RSA加密/PHP中的解密失败

Android TextView 过渡

java - 如何将此代码放入可调用方法类中

java - 多进程批量申请