【问题标题】:Attempt to invoke virtual method 'void android.media.AudioManager.setVibrateSetting(int, int)' on a null object reference尝试在空对象引用上调用虚拟方法“void android.media.AudioManager.setVibrateSetting(int, int)”
【发布时间】:2017-11-21 06:15:20
【问题描述】:

我正在尝试使用切换按钮。
下面是代码:

public class Activity2 extends AppCompatActivity {
    public Activity2() {
        super();
    }
    AudioManager audio; 
    @Nullable

    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.activity2, container, false);
    }

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity2);
    }

    public void onToggleClicked(View view) {
      //audio  =new AudioManager();

        // Is the toggle on?
        boolean on = ((ToggleButton) view).isChecked();

        if (on) {
            // Enable vibrate
            audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
                    AudioManager.VIBRATE_SETTING_ON);
            audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
                    AudioManager.VIBRATE_SETTING_ON);
        } else {
            // Disable vibrate
            audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
                    AudioManager.VIBRATE_SETTING_OFF);
            audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
                    AudioManager.VIBRATE_SETTING_OFF);
        }
    }

} 

这里是 xml:

<ToggleButton
        android:id="@+id/togglebutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textOn="Vibrate on"
        android:textOff="Vibrate off"
        android:onClick="onToggleClicked"/>

我正在尝试使用切换按钮,但它给了我错误:

尝试调用虚方法'void android.media.AudioManager.setVibrateSetting(int, int)' 为空 对象引用。

请帮助...谢谢!

【问题讨论】:

  • 您的 AudioManager 初始化已注释

标签: android


【解决方案1】:

您忘记初始化您的 AudioManagerToggleButton

你需要在onCreate()

中初始化你的AudioManagerToggleButton
ToggleButton ToggleButton;
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity2);  
        audio = (AudioManager)getSystemService(Context.AUDIO_SERVICE);  
        ToggleButton = (ToggleButton) findViewById(R.id.togglebutton);
 }

【讨论】:

  • 非常感谢@Prem
猜你喜欢
  • 2020-11-28
  • 2021-11-20
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多