java - 无法打开上传到 firebase 的 pdf 文件
问题描述
我已将 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) {
}
});
}
}
它应该打开列表视图中列出的 PDF 文件,而不是在以前的活动中重定向我
解决方案
看起来您的 Intent 并未指示 PDF 使用读取 PDF 文件的应用程序或网站打开 PDF。这就是为什么它只是回到以前的活动。
要在浏览器中打开 pdf,
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(pdf_url));
startActivity(browserIntent);
推荐阅读
- xamarin.android - TreeView 中的事件处理(Xamarin android)
- mongoid - 使用belongs_to关系时的Mongoid,陌生人mongodb查询
- sql-server - 在 SQL-Server 中更新计算的排名
- asp.net-mvc - 无法调用重载的构造函数:只能识别一个
- java - 未调用子片段接口实现
- c - 需要帮助在 printf 中显示浮点数
- ag-grid - 如何使用 ag-grid 显示行序号
- python - Python Pandas:如何应用需要扩展类(日期时间)的函数?
- php - Wordpress 中的表单提交计数器
- javascript - OpenLayers 4 - 同时显示来自多个 GeoJSON 文件的特征