首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用安卓接近传感器时禁用OnClickListener

使用安卓接近传感器时禁用OnClickListener
EN

Stack Overflow用户
提问于 2014-05-14 23:12:55
回答 1查看 71关注 0票数 0

我正在尝试在一个已经运行良好的应用程序中创建一个接近传感器。我可以正常运行传感器,但当我这样做时,它禁用了应用程序按钮的OnClickListener,我真的不明白为什么。

这是我的MainActivity.class

代码语言:javascript
复制
public class MainActivity extends Activity implements OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button option1 = (Button) findViewById(R.id.option1);
        Button option2 = (Button) findViewById(R.id.option2);

        option1.setOnClickListener(this);
        option2.setOnClickListener(this);
   }

    @Override
    protected void onResume() {
        super.onResume();       
        Intent intent = new Intent();
        intent.setClass(getBaseContext(),ProximitySensor.class);
        startActivity(intent);      
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.option1:
                // Option1
               break;
            case R.id.option2:
                // Option1
                break;
            default:
                break;
        }

    }
}

这里是工作正常的ProximitySensor.class

代码语言:javascript
复制
public class ProximitySensor extends Activity implements SensorEventListener{

    private SensorManager sm;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        sm= (SensorManager)getSystemService(Context.SENSOR_SERVICE);
    }

    @Override
    protected void onStart(){
        super.onStart();
        Sensor proximitySensor= sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);
        if (proximitySensor == null){
            Toast.makeText(ProximitySensor.this,"No Proximity Sensor Found! ",Toast.LENGTH_LONG).show();
        }   
    }

    @Override
    protected void onResume() {
        super.onResume();
        sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_PROXIMITY),SensorManager.SENSOR_DELAY_NORMAL);
    }

    @Override
    protected void onStop() {
        super.onStop();
        sm.unregisterListener(this);
   }

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

    @Override
    public void onSensorChanged(SensorEvent event) {
        if(event.sensor.getType()==Sensor.TYPE_PROXIMITY){
            if(event.values[0] == 0){
               Toast.makeText(ProximitySensor.this,"You are close",Toast.LENGTH_LONG).show();
            }
        }
    }

}

我想我可能把传感器打错了,谁能帮我一下?

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2014-05-14 23:27:08

您需要在ProximitySensor活动中注册onClick侦听器,就像您在主活动上所做的那样。

您当前正在启动一个新活动,并将其布局设置为与主活动相同。但是当您这样做时,您在主活动上设置的onClickListeners将不再起作用,因为它是一个新活动和新布局。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23658642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档