Android 如何以编程方式更改进度条的进度值?
我正在尝试创建一些组件的自定义视图,因为我在应用程序中非常需要这种组合。除了myAndroid 如何以编程方式更改进度条的进度值?,android,customization,android-progressbar,progress,Android,Customization,Android Progressbar,Progress,我正在尝试创建一些组件的自定义视图,因为我在应用程序中非常需要这种组合。除了myprogressBar的进度之外,代码中的所有内容都正常工作。我认为它没有正确获取XML文件的值 在init void中,我调用setProgressBar(progress)为xml文件提供当前值。例如,当我输入“setProgressBar(88)”时,它可以正常工作,但不能使用它必须在xml文件中找到的值 CustomProgressbar.java 公共类CustomProgressbar扩展了Relativ
progressBar
的进度之外,代码中的所有内容都正常工作。我认为它没有正确获取XML
文件的值
在init void中,我调用setProgressBar(progress)
为xml文件提供当前值。例如,当我输入“setProgressBar(88)
”时,它可以正常工作,但不能使用它必须在xml文件中找到的值
CustomProgressbar.java
公共类CustomProgressbar扩展了RelativeLayout{
@时尚人士
int index0=0;
@时尚人士
int index1=1;
@时尚人士
int index2=2;
文本视图标题文本;
文本视图值文本;
ProgressBar ProgressBar;
公共CustomProgressbar(上下文、属性集属性){
超级(上下文,attrs);
init(上下文,attrs);
}
私有void init(上下文上下文、属性集属性){
充气(上下文,右布局。自定义进度条布局,此);
int[]集合={R.attr.title,R.attr.value,R.attr.progress};
TypedArray TypedArray=上下文。获取样式属性(属性,集合);
CharSequence title=typedArray.getText(index0);
CharSequence值=typedArray.getText(index1);
int progress=typedArray.getInteger(index2,0);
typedArray.recycle();
titleText=findviewbyd(R.id.title\u text);
valueText=findViewById(R.id.value\u text);
progressBar=findViewById(R.id.progressBar\u attr);
setTitleText(标题);
setValueText(值);
设置进度条(进度);
}
公共字符序列getTitletText(){
返回titleText.getText();
}
公共字符序列getValueText(){
返回valueText.getText();
}
public int getProgressBar(){
返回progressBar.getProgress();
}
public void setTitleText(字符序列值){
titleText.setText(值);
}
public void setValueText(字符序列值){
valueText.setText(值);
}
公共void setProgressBar(int值){
progressBar.setProgress(值);
}
}
custom\u progressbar\u layout.xml
main_activity.xml
当我运行应用程序时。
(我还不允许添加图像,所以我得到了链接。)试试看,样式属性是以另一种方式获得的
public class CustomProgressbar extends RelativeLayout {
private TextView titleText;
private TextView valueText;
private ProgressBar progressBar;
public CustomProgressbar(Context context, AttributeSet attrs) {
super(context, attrs);
init(context, attrs);
}
private void init(Context context, AttributeSet attrs) {
inflate(context, R.layout.custom_progressbar_layout, this);
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CustomProgressbar);
CharSequence title = typedArray.getText(R.styleable.CustomProgressbar_title);
CharSequence value = typedArray.getText(R.styleable.CustomProgressbar_value);
int progress = typedArray.getInteger(R.styleable.CustomProgressbar_progress, 0);
typedArray.recycle();
titleText = findViewById(R.id.title_text);
valueText = findViewById(R.id.value_text);
progressBar = findViewById(R.id.progressbar_attr);
setTitleText(title);
setValueText(value);
setProgressBar(progress);
}
public CharSequence getTitleText() {
return titleText.getText();
}
public CharSequence getValueText() {
return valueText.getText();
}
public int getProgressBar() {
return progressBar.getProgress();
}
public void setTitleText(CharSequence value) {
titleText.setText(value);
}
public void setValueText(CharSequence value) {
valueText.setText(value);
}
public void setProgressBar(int value) {
progressBar.setProgress(value);
}
}