去掉聲音設置中的Ringtone

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);
    }
就不顯示了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章