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);
}
就不显示了。