我检查findViewById
是一个方法,所以timerSeekBar
,一个对象或variable
被告知它的一个变量,但我们正在调用它的方法所以它不应该成为一个对象。请解释为什么我们在SeekBar
之前写findViewById
。
SeekBar -Class,findViewById- Method ?,timerSeekBar- variable or object?
SeekBar timerSeekBar = (SeekBar)findViewById(R.id.timerSeekBar);
timerSeekBar.setMax(600);
timerSeekBar.setProgress(30);
另一个例如 -
TextView answerLabel = (TextView) findViewById(R.id.button1);
答案 0 :(得分:0)
方法findViewById
返回实际用于在XML文件中定义该视图的类的实例。
(Seekbar)用于使用特定视图投射该视图。
您必须将(findViewById
)强制转换为使用它时定义变量的类。
所以,这就是
SeekBar timerSeekBar = (SeekBar)findViewById(R.id.timerSeekBar);
从API 26开始,findViewById对其返回类型使用推理,因此您不再需要进行强制转换。
ProgressBar是超类,AbsSeekbar是Progressbar的Child类,SeekBar是AbsSeekbar的子类。
setMax()是Seekbar的方法,setProgress()是Progressbar的方法。
答案 1 :(得分:0)
SeekBar是一个小部件..它在一个文件SeekBar.java中定义..它实际上是android中的View
。 Seekbar最终扩展了基类View.java
。 findViewById()
方法用于在android中找到view
,并使用view
方法为setId()
设置特定ID。
我们使用SeekBar timerSeekBar = (SeekBar)findViewById(R.id.timerSeekBar);
来告诉系统我们正在使用findViewById()
方法查找视图,然后将基础View.class
类型对象强制转换为子类SeekBar.class
类型对象。 (SeekBar)
用于告诉系统此view
是SeekBar
的实例。