Отображение имени файла в строке выполнения в android studio
Я хочу, чтобы имя файла отображалось на индикаторе выполнения при копировании и вставке.
Что я уже пробовал:
<pre>I want to display name of file in progress bar in while copy all files my code is.. public CopyTask() { dialog = new ProgressDialog(MainActivity.this); dialog.setTitle("Copying " + getName() ); dialog.setMessage("Copying a file to the internal storage, this can take some time!" + getName() ); dialog.setIndeterminate(false); dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); dialog.setCancelable(true); dialog.setButton(ProgressDialog.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { dialog.cancel(); CopyTask.this.cancel(true); } }); }
Suvendu Shekhar Giri
Итак, вы получаете какую-нибудь ошибку?getName()
является ли получение Вами правильного имени файла?
Member 13544752
нет. пожелать я заявляю getname() метод, прежде чем прогресс-бар.. Но если я не объявлял, то это показывало ошибку. Каково же ее решение
David Crow
Не имеет значения где именно getName()
объявлено, до или после того, как Java все равно сможет его найти.
В вашем CopyTask()
функция, я не вижу никакого кода, который делает фактическое копирование.
Когда отображается диалоговое окно, видите ли вы "копирование" в заголовке (и "копирование файла во внутренний..." в сообщении)?
Member 13544752
Вот код для копирования и вставки..Но мой вопрос заключается в том, как я могу показать имя файла на индикаторе выполнения, который копируется..
public void CopyTask1(просмотр v) {
foldername="Files1" + System.currentTimeMillis();
if (adapter == null)
вернуть;
граф инт = адаптер.getCount();
for (int i = 0; i < count; i++) {
copyfiles(i);
}
}
private void copyfiles(int position) {
Запись UsbFile = adapter.getItem(позиция);
Тост.makeText(в MainActivity.это,"файлы"+адаптер.getCount(),тост.LENGTH_SHORT).показать();
// вернуть;
//}
если (ContextCompat.checkSelfPermission(это, манифест.разрешение.Слушайте)
!= PackageManager.PERMISSION_GRANTED) {
если (ActivityCompat.shouldShowRequestPermissionRationale(это,
Манифест.разрешение.Слушайте))
{
Тост.makeText(это, строку, Р..request_write_storage_perm, тосты.LENGTH_LONG).показать();
} еще
{
ActivityCompat.requestPermissions(это,
новая строка[]{Manifest.permission.Слушайте},
REQUEST_EXT_STORAGE_WRITE_PERM);
}
вернуть;
}
CopyTaskParam param = новый CopyTaskParam();
param.from = запись;
Файл f = новый файл(Environment.getExternalStorageDirectory().getAbsolutePath() + "/"+ "Files1" +"/"+foldername );
Ф.mkdirs();
int index = entry.getName().lastIndexOf(".") > 0
? entry.getName().lastIndexOf(".")
: запись.метод getname().длина();
String prefix = entry.getName().substring(0, index);
Строки ВН = запись.метод getname().подстрока(индекс);
/ префикс / должен содержать не менее 3 символов
if(prefix.length() < 3)
{
префикс += "pad";
}
пробовать {
param.to = File.createTempFile(префикс, ext, f);
}
catch (IOException e)
{
е.печатные();
}
new CopyTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,param);
}
David Crow
Я бы пошел на это таким образом:
class CopyTask extends AsyncTask<Void, String, Void> { ProgressDialog dialog = null; protected void onPreExecute() { dialog = new ProgressDialog(MainActivity.this); dialog.setTitle("Copying file..."); dialog.setIndeterminate(true); dialog.setCancelable(false); dialog.show(); } protected Void doInBackground() { for (int x = 0; x < num_files_to_copy; x++) { String name_of_file_to_copy = array_of_files[x]; publishProgress(name_of_file_to_copy); copyFile(...); } } protected void onProgressUpdate(String... values) { dialog.setMessage(values[0]); } protected void onPostExecute() { dialog.dismiss(); } }Я бы тоже воздержался от звонков
checkSelfPermission()
, shouldShowRequestPermissionRationale()
, и requestPermissions()
каждый раз через петлю.