我已将 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); 


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!