我正在创建一个亮度控制对话框。然而,我遇到的问题是,当我将 textview 放在 seekbar 时,它会导致此错误:
android.widget.SeekBar cannot be cast to android.widget.TextView
出于某种原因,当 .xml 上的定位遵循 seekbar 然后是 textview 时,它似乎可以工作。
这是一些代码:
LayoutInflater li_brightness = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
View v_brightness = li_brightness.inflate(R.layout.options_dialog_brightness, (ViewGroup)findViewById(R.id.ll_brightness_layout));
bright_textView = (TextView)v_brightness.findViewById(R.id.brightness_text);
brightBar = (SeekBar)v_brightness.findViewById(R.id.seekbar_brightness);
confirm_brightness = (Button)v_brightness.findViewById(R.id.button_brightness);
cResolver = getContentResolver();
window = getWindow();
brightBar.setMax(100);
brightBar.setProgress(50);
brightBar.setKeyProgressIncrement(1);
bright_textView.setText("50".toString());
brightBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
float BackLightValue = (float)progress/100;
if(BackLightValue <= 0){
bright_textView.setText(String.valueOf(BackLightValue));
}
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = BackLightValue;
getWindow().setAttributes(layoutParams);
}
});
最佳答案
尝试清理您的项目(Project > Clean from Eclipse 或 ant clean
从命令行),看看是否能解决您的问题。有时构建系统在 R
值方面与自身有点不同步,这种错误就是症状之一。
关于android.widget.SeekBar 无法转换为 android.widget.TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9568189/