无论如何都要知道进度条何时达到最大值。就像一个监听器然后可以插入ProgressBar并让我们知道进度条处于最高级别?
亲切的问候
答案 0 :(得分:10)
没有直接的方法可以做到这一点。解决方法可能是创建ProgressBar的自定义实现并覆盖setProgress方法:
public MyProgressBar extends ProgressBar
{
@Override
public void setProgress(int progress)
{
super.setProgress(progress);
if(progress == this.getMax())
{
//Do stuff when progress is max
}
}
}
答案 1 :(得分:0)
我认为最干净的方法就是将其添加到您的代码中:
if (progressBar.getProgress() == progressBar.getMax()) {
// do stuff you need
}
答案 2 :(得分:0)
如果您需要public class Publisher {
public static void main(String args[]) {
String teachers[] = {"Jyothi", "Jyostna", "Sumathi"};
Publisher2 p1 = new Publisher2(teachers[1],20); //The problem is here, I can't specify
//index of array (I can put onlu teachers without index[1])so toString method is returning address of object instead of the name
System.out.println(p1);
}
}
class Publisher2 {
String[] teachers;
int y;
public Publisher2(String[] teachers, int y) {
this.teachers = teachers;
this.y = y;
}
@Override
public String toString() {
return "Publisher2{" + "teachers=" + teachers + ", y=" + y + '}';
}
}
之类的onProgressChanged
-创建自定义进度(科特琳):
SeekBar
例如在您的片段中:
class MyProgressBar : ProgressBar {
private var listener: OnMyProgressBarChangeListener? = null
fun setOnMyProgressBarChangeListener(l: OnMyProgressBarChangeListener) {
listener = l
}
constructor(context: Context?) : super(context)
constructor(context: Context?, attrs: AttributeSet?) : super(
context,
attrs
)
constructor(
context: Context?,
attrs: AttributeSet?,
defStyleAttr: Int
) : super(context, attrs, defStyleAttr)
override fun setProgress(progress: Int) {
super.setProgress(progress)
listener?.onProgressChanged(this)
}
interface OnMyProgressBarChangeListener {
fun onProgressChanged(myProgressBar: MyProgressBar?)
}
}
答案 3 :(得分:0)
我认为总的来说,您永远不必这样做。在需要听进度条进度的情况下,是否只有一种有效的情况?我的意思是,通常是另一回事:您基于某个东西(而不是相反)来设置进度条的进度,因此您需要跟踪某件事的进度,而不是听某个视图(可能存在或可能不存在)。 / p>