У меня есть метод pdfviewer(...)
, написанный в классе In_cs_3_s1
, который в основном принимает путь к файлу, имя файла и URL в качестве аргументов. Сначала он проверяет, существует ли файл в указанном пути, если он это делает, он вызывает средство просмотра pdf. Кроме того, он загружает файл с указанного URL: для этого он вызывает СКАЧАТЬ МЕНЕДЖЕР. Я хочу вызвать этот method(pdfviewer)
из множества мест.Есть ли способ сделать следующий метод доступным для всех классов?
Вот мой код:
public void pdfviewer(String branch,String sem,String folder,String fname,String url,Context a)
{
File file = new File(Environment.getExternalStorageDirectory()
+File.separator+"name"+File.separator+branch+File.separator+sem+File.separator+folder,fname);
if(file.exists())
{
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file),"application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try
{
startActivity(intent);
}
catch (ActivityNotFoundException e)
{
Toast.makeText(this, "NO pdf viewer found", Toast.LENGTH_SHORT).show();
}
}
else
{
file_download(url,branch,sem,folder,fname);
Toast.makeText(this, "Downloading.....", Toast.LENGTH_LONG).show();
}
}
public void file_download(String uRl,String branch,String sem,String folder,String fname) {
File direct = new File(Environment.getExternalStorageDirectory()
+File.separator+"name"+File.separator+branch+File.separator
+sem+File.separator+folder);
if (!direct.exists()) {
direct.mkdirs();
}
DownloadManager mgr = (DownloadManager) this.getSystemService(Context.DOWNLOAD_SERVICE);
Uri downloadUri = Uri.parse(uRl);
DownloadManager.Request request = new DownloadManager.Request(
downloadUri);
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setAllowedNetworkTypes(
DownloadManager.Request.NETWORK_WIFI
| DownloadManager.Request.NETWORK_MOBILE)
.setAllowedOverRoaming(false)
.setDestinationInExternalPublicDir("/name"+File.separator+branch+File.separator
+sem+File.separator+folder,fname);
mgr.enqueue(request);
}
я хочу, чтобы вызвать этот метод из onclicklistener кнопки. Я новичок, поэтому, пожалуйста, легко.
Что такое 'pobj'? –
вы не можете создать новый экземпляр Activity и просто использовать его. Новые экземпляры могут быть созданы только системой Android. Прежде чем начинать программирование, ознакомьтесь с основными сведениями об андроиде, иначе у вас будет сотни таких проблем. –
спасибо! поэтому, если я вложу метод в другой класс, который не расширяет Activity, тогда он должен работать правильно? –