Android进度条监听器

时间:2012-08-31 05:56:11

标签: android progress-bar

无论如何都要知道进度条何时达到最大值。就像一个监听器然后可以插入ProgressBar并让我们知道进度条处于最高级别?

亲切的问候

4 个答案:

答案 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>