问题描述
嗨,在下面的代码中,我已实现表布局,其中表表行包含名为Title,文件名,查看/下载的表行,在最后一行中查看/下载添加了名为预览的行。如果用户单击预览,我想路径名称,并显示为pdf格式。
任何人都可以帮助我,这给了我空白的画面
java:
String operation = "getRelatedDocuments";
String module = "Documents";
final String record=opportunitywon_id;
Log.d("record",record);
final APIService service = RetroClass.getRetrofitInstance().create(APIService.class);
/** Call the method with parameter in the interface to get the notice data*/
Call<DocumentModel> call = service.GetDocumentList(operation,sessionId,module,record);
/**Log the URL called*/
Log.i("URL Called",call.request().url() + "");
call.enqueue(new Callback<DocumentModel>() {
@Override
public void onResponse(Call<DocumentModel> call,Response<DocumentModel> response) {
Log.e("response",new Gson().toJson(response.body()));
if (response.isSuccessful()) {
Log.e("response",new Gson().toJson(response.body()));
DocumentModel documentModel = response.body();
// Gson g = new Gson();
//String jsonAllDocuments = g.toJson(documentModel);
// tinyDB.putString("jsonAllDocuments",jsonAllDocuments);
String success = documentModel.getSuccess();
if (success.equals("true")) {
ClosedwonResults closedwonResults = documentModel.getResult();
panModel = closedwonResults.getPan();
id = panModel.getId();
Log.d("docid",id);
filename = panModel.getFilename();
Log.d("filename",filename);
path = panModel.getPath();
Log.d("path",path);
GSTModel gstModel=closedwonResults.getGst();
gstId = gstModel.getId();
gstFilename=gstModel.getFilename();
gstpath=gstModel.getPath();
Purchase_orderModel purchase_orderModel=closedwonResults.getPurchase_order();
purchaseId=purchase_orderModel.getId();
purchaseFilename=purchase_orderModel.getFilename();
purchasePath=purchase_orderModel.getPath();
AdharModel adharModel=closedwonResults.getAdhar();
adharId=adharModel.getId();
adharFilename=adharModel.getFilename();
adharPath=adharModel.getPath();
ChecqueModel checqueModel=closedwonResults.getChecque();
checqueId=checqueModel.getId();
checqueFilename=checqueModel.getFilename();
checquepath=checqueModel.getPath();
Doc_oneModel doc_oneModel = closedwonResults.getDoc_one();
doc_oneid = doc_oneModel.getId();
Log.d("doc_oneid",doc_oneid);
doc_onefilename = doc_oneModel.getFilename();
Log.d("doc_onefilename",doc_onefilename);
doc_onepath = doc_oneModel.getPath();
Log.d("doc_onepath",doc_onepath);
Doc_twoModel doc_twoModel = closedwonResults.getDoc_two();
doc_twoid = doc_twoModel.getId();
Log.d("doc_twoid",doc_twoid);
doc_twofilename = doc_twoModel.getFilename();
Log.d("doc_twofilename",doc_twofilename);
doc_twopath = doc_twoModel.getPath();
Log.d("doc_twopath",doc_twopath);
docModel = new DocModel(filename,adharFilename,gstFilename,purchaseFilename,checqueFilename,doc_onefilename,doc_twofilename,path,adharPath,gstpath,checquepath,purchasePath,doc_onepath,doc_twopath);
closedwonList.add(docModel);
}
// DocModel docModel1=closedwonList.get(position);
documentIDS = docModel.getFilename() + "," + docModel.getDoc_onefilename() + "," + docModel.getDoc_twofilename() + "," +
docModel.getAdharfilename() + "," + docModel.getChecquefilename() + "," + docModel.getGstfilename() + "," + docModel.getPurchasefilename();
Paths=docModel.getPath()+","+docModel.getGstpath()+","+docModel.getChecquepath()+","+
docModel.getAdharpath()+","+docModel.getPurchasepath()+","+docModel.getDoc_onepath()+","+docModel.getDoctwopath();
String[] stringArray2 = {"PAN","AADHAR","GST","PURCHASE ORDER","CHECQUE","dOC ONE","DOC TWO"};
TableRow tbrowdoc = new TableRow(getContext());
Resources resourcedoc = getContext().getResources();
tbrowdoc.setLayoutParams(getLayoutParams());
tbrowdoc.addView(getTextView(0,"Title",Color.WHITE,resourcedoc.getColor(R.color.tabs1)));
tbrowdoc.addView(getTextView(0,"File Name","View/Download",resourcedoc.getColor(R.color.tabs1)));
documents.addView(tbrowdoc,getLayoutParams());
String[] IDSList = documentIDS.split(",");
String[] PathList=Paths.split(",");
url="http://XXXXXXX/".concat(String.valueOf(PathList));
int arrayDoc = stringArray2.length;
for (int i = 0; i < arrayDoc; i++) {
final TableRow tbrowdocdetails = new TableRow(getContext());
tbrowdocdetails.setLayoutParams(getLayoutParams());
tbrowdocdetails.addView(getTextView(i + arrayDoc,stringArray2[i],Color.BLACK,ContextCompat.getColor(getContext(),R.color.back_blue)));
tbrowdocdetails.addView(getTextView(i + arrayDoc,IDSList[i],R.color.back_blue)));
tbrowdocdetails.addView(getTextView1(i + arrayDoc,"Preview",R.color.back_blue),position));
documents.addView(tbrowdocdetails);
}
}
else{
Toast.makeText(getContext(),"Something went wrong",Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(Call<DocumentModel> call,Throwable t) {
Log.d("error",t.getMessage());
}
});
private TextView getTextView1(int id,final String title,int color,int bgColor,final int position) {
lblClick = new TextView(getContext());
lblClick.setId(id);
lblClick.setText(title.toLowerCase());
lblClick.setTextColor(color);
lblClick.setGravity(Gravity.CENTER);
lblClick.setPadding(10,10,10);
lblClick.setBackgroundColor(bgColor);
lblClick.setTag(url);
lblClick.setLayoutParams(getLayoutParams());
lblClick.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String path=v.getTag().toString();
Toast.makeText(getContext(),Toast.LENGTH_LONG).show();
myPDfItemClick(position);
}
});
return lblClick;
}
方法:
@Override
public void myPDfItemClick(int position) {
ActivityCompat.requestPermissions(getActivity(),PERMISSIONS,112);
if (!hasPermissions(getContext(),PERMISSIONS)) {
Log.v(TAG,"download() Method DON'T HAVE PERMISSIONS ");
Toast t = Toast.makeText(getContext().getApplicationContext(),"You don't have read access !",Toast.LENGTH_LONG);
t.show();
} else {
File d = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); // -> filename = maven.pdf
String url_path = listSalesstageOpportunity.get(position).getPdf_link();
///Log.d("url_path",url_path);
String file_name = url_path.substring(url_path.lastIndexOf('/') + 1);
//Log.d("file_name",file_name);
File pdfFile = new File(d,file_name);
Log.v(TAG,"view() Method pdfFile " + pdfFile.getAbsolutePath());
if (pdfFile != null) {
Uri path = GenericFileProvider.getUriForFile(getActivity(),BuildConfig.APPLICATION_ID + ".provider",pdfFile);
Log.v(TAG,"view() Method path " + url_path);
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(path,"application/pdf");
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
pdfIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
try {
startActivity(pdfIntent);
} catch (ActivityNotFoundException e) {
Toast.makeText(getActivity(),"No Application available to view PDF",Toast.LENGTH_SHORT).show();
}
// }
}
Log.v(TAG,"view() Method completed ");
// download(v);
}
download(position);
request(position);
}
public void request(int position) {
ActivityCompat.requestPermissions(getActivity(),112);
}
public void download(int position) {
Log.v(TAG,"download() Method invoked ");
ActivityCompat.requestPermissions(getActivity(),112);
if (!hasPermissions(getContext(),"You don't have write access !",Toast.LENGTH_LONG);
t.show();
} else {
Log.v(TAG,"download() Method HAVE PERMISSIONS ");
String url_path = listSalesstageOpportunity.get(position).getPdf_link();
Log.d("url_path",url_path);
String file_name = url_path.substring(url_path.lastIndexOf('/') + 1);
Log.d("file_name",file_name);
new DownloadFile().execute(url_path,file_name);
}
Log.v(TAG,"download() Method completed ");
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)