Я работаю над приложением для отслеживания долга, и мне нужен индикатор выполнения, который по мере уменьшения текущего долга будет увеличиваться. Единственный способ, которым я могу думать об этом, состоит в том, чтобы выдумать числа вокруг так, чтобы индикатор выполнения MAX был установлен в 0, а затем изменить начальный долг на отрицательное число, как показано ниже
ProgressBar.setMax(0);
Integer startingdebt = -1000; // 1000$ owed
ProgressBar.setProgress(currentlyowed); //say, -500
поэтому вы начинаете с -1000 и добавляете к ней 500 $, если заплатили. Я не знаю, будет ли это работать, потому что я уверен, что для элемента управления прогрессом уже установлен минимум 0, поэтому вы не можете установить максимум таким же ... есть ли способ сделать это?
Редактировать: Спасибо за ответы, ребята, но я нашел более простой способ:
чтобы поделиться с другими, вот мой последний блок кода:
double startingamount = (this.c.getDouble(this.c.getColumnIndex(DbAdapter.KEY_STARTINGAMOUNT)));
double currentamount = (this.c.getDouble(this.c.getColumnIndex(DbAdapter.KEY_CURRENTAMOUNT)));
currentdebt.setText(formatter.format(currentamount));
double progresspaid = new Double(startingamount-currentamount);
double progresspercentage = new Double((progresspaid / startingamount)*100);
int progresspercent = (int)progresspercentage;
progressbar.setText(Integer.toString(progresspercent)+"%");
progressbar.setMax(100);
progressbar.setProgress(progresspercent);
ключом было получить переменную, которая вычитает текущую сумму из начальной суммы, а затем делит ее на начальную сумму.
double progresspaid = new Double(startingamount-currentamount);
double progresspercentage = new Double((progresspaid / startingamount)*100);
Еще раз спасибо, я действительно ценю людей, помогающих мне изучать Java и разработку для Android, я разработчик VB.net, поэтому кое-что из этого все еще чуждо мне.