packages/apps/Settings/res/layout/preference_dialog_ringervolume.xml中,
<SeekBar android:id="@*android:id/seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="2dip"
android:paddingLeft="20dip"
android:paddingRight="20dip" />
这项不能注释,否则会出现错误:
E/AndroidRuntime( 568): FATAL EXCEPTION: main
E/AndroidRuntime( 568): java.lang.NullPointerException
E/AndroidRuntime( 568): at android.preference.VolumePreference$SeekBarVolumizer.initSeekBar(VolumePreference.java:255)
E/AndroidRuntime( 568): at android.preference.VolumePreference$SeekBarVolumizer.<init>(VolumePreference.java:251)
E/AndroidRuntime( 568): at android.preference.VolumePreference.onBindDialogView(VolumePreference.java:69)
E/AndroidRuntime( 568): at com.android.settings.RingerVolumePreference.onBindDialogView(RingerVolumePreference.java:71)
比较特殊的是:@*android:id/seekbar, 访问它需要用 com.android.internal.R.id.seekbar 。
所以要去掉这项,在 packages/apps/Settings/src/com/android/settings/RingerVolumePreference.java
protected void onBindDialogView(View view) {
。。。
//jeff add.
SeekBar seekBar = (SeekBar) view.findViewById(com.android.internal.R.id.seekbar);
seekBar.setVisibility(View.GONE);
}
就不显示了。
本文解决在Android RingerVolumePreference组件中SeekBar元素不能被注释的问题,通过使用com.android.internal.R.id.seekbar来访问SeekBar,避免了出现FATAL EXCEPTION: main和NullPointerException错误。提供了解决方案并展示了如何隐藏SeekBar元素。
600

被折叠的 条评论
为什么被折叠?



