weixin_70655813 2023-04-19 15:26 采纳率: 25%
浏览 52

android studio中出现sensor or listener is null 这个问题怎么解决

android studio中出现sensor or listener is null 怎么解决

img


以下是代码

package com.example.ji_bu_qi;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

import android.annotation.SuppressLint;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
import com.example.ji_bu_qi.bean.MyUser;
import cn.bmob.v3.Bmob;
import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.SaveListener;

public class MainActivity extends AppCompatActivity {
    TextView textView;
    Sensor sensor;
    MyUser myUser;
    SensorManager sensorManager;
    int i;
    @SuppressLint("MissingInflatedId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Bmob.initialize(this, "1313b79392ea5abbc84582917aa7b5ab");
        ActivityCompat.requestPermissions(MainActivity.this,new String[]{"android.permission.WRITE_EXTERNAL_STORAGE","android.permission.INTERNET"},1);
        myUser=new MyUser();
        myUser.setAge(18);
        myUser.setUserName("张三");
        myUser.setStep(0);
        myUser.save(new SaveListener<String>() {
            @Override
            public void done(String s, BmobException e) {
                if(e==null){
                    Toast.makeText(MainActivity.this, "添加数据成功,返回objectId为:", Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(MainActivity.this, "添加数据失败", Toast.LENGTH_SHORT).show();
                }

            }
        });

        textView=findViewById(R.id.textView);
        sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
        sensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
        SensorEventListener listener = new SensorEventListener() {
            @Override
            public void onSensorChanged(SensorEvent event) {
                if (i==-1){
                    i = (int)event.values[0];
                }
                textView.setText("目前的步数是:"+((int)event.values[0]-i));

            }

            @Override
            public void onAccuracyChanged(Sensor sensor, int accuracy) {

            }
        };
        sensorManager.registerListener(listener,sensor,SensorManager.SENSOR_DELAY_GAME);

    }

    @Override
    protected void onResume() {
        super.onResume();
    }
}


  • 写回答

3条回答 默认 最新

  • 不会写代码的猴子 Android领域优质创作者 2023-04-19 15:49
    关注

    img


    使用前需要判断对象是否为空。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月19日

悬赏问题

  • ¥15 创建一个数据库(要创建的表和记事本的代码截图))
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败
  • ¥15 用Ros中的Topic通讯方式控制小乌龟的速度,走矩形;编写订阅器代码
  • ¥15 LLM accuracy检测
  • ¥15 pycharm添加远程解释器报错
  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口