Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-递增全局变量_Android_Global - Fatal编程技术网

Android-递增全局变量

Android-递增全局变量,android,global,Android,Global,我正在尝试制作一个带有接近手势的应用程序。我在主要活动中设置了接近传感器: import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.app.Activity; pu

我正在尝试制作一个带有接近手势的应用程序。我在主要活动中设置了接近传感器:

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.app.Activity;


public class MainActivity extends Activity implements SensorEventListener {
    SensorManager sm;
    Sensor proxSensor;




    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list();
        Global g = Global.getInstance();
        g.setData(0);
        int data=g.getData();

    }
    public void list() {
        sm=(SensorManager)getSystemService(SENSOR_SERVICE);
        proxSensor=sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);

        sm.registerListener(this, proxSensor, SensorManager.SENSOR_DELAY_NORMAL);
    }

    @Override
    public void onAccuracyChanged(Sensor arg0, int arg1) {
        // TODO Auto-generated method stub

    }
    @Override
    public void onSensorChanged(SensorEvent arg0) {
        // TODO Auto-generated method stub





    }
public class Global {
    private static Global instance;
    private int data;

    private Global() {}

    public void setData(int d){
        this.data=d;
    }
    public int getData(){
        return this.data;
    }

    public static synchronized Global getInstance(){
        if(instance==null){
            instance=new Global();
        }
        return instance;
    }



}
此外,我还在singleton类中设置了一个全局变量,并在主活动中引用了它:

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.app.Activity;


public class MainActivity extends Activity implements SensorEventListener {
    SensorManager sm;
    Sensor proxSensor;




    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list();
        Global g = Global.getInstance();
        g.setData(0);
        int data=g.getData();

    }
    public void list() {
        sm=(SensorManager)getSystemService(SENSOR_SERVICE);
        proxSensor=sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);

        sm.registerListener(this, proxSensor, SensorManager.SENSOR_DELAY_NORMAL);
    }

    @Override
    public void onAccuracyChanged(Sensor arg0, int arg1) {
        // TODO Auto-generated method stub

    }
    @Override
    public void onSensorChanged(SensorEvent arg0) {
        // TODO Auto-generated method stub





    }
public class Global {
    private static Global instance;
    private int data;

    private Global() {}

    public void setData(int d){
        this.data=d;
    }
    public int getData(){
        return this.data;
    }

    public static synchronized Global getInstance(){
        if(instance==null){
            instance=new Global();
        }
        return instance;
    }



}
我试图用全局变量计算传感器更新。 谁能告诉我如何:

  • 每次触发传感器时,将全局变量的值加1
  • 一旦全局变量达到某个值,就触发活动
  • 代码将非常感谢,因为我在这个问题上完全一无所知


    谢谢大家!

    我同意埃里克的意见。请参见下面的示例,您也可以根据自己的需求以其他方式进行操作

    public void updateData(Context context){
        this.data++;
        if (this.data==LIMIT){
            Intent intent=new Intent(CurrentClass.this, ClassToStart.class);
            context.startActivity(intent)
        }
    }
    

    您当前使用的代码是由您编写的吗?(如果是这样的话,这些应该是微不足道的修改。)我尝试过使用If-else语句,但它给了我错误。将来,请显示您尝试过的内容(以及任何错误),否则看起来您只是在要求别人为您做工作。好的,对不起。下次我会这么做的