gpt4 book ai didi

java - 无法让按钮与其他代码同时工作

转载 作者:太空狗 更新时间:2023-10-29 16:08:41 25 4
gpt4 key购买 nike

我正在尝试为 Android 编写一个非常简单的应用程序。它应该做两件事:

  1. 在 TextView 中显示方向传感器信息。
  2. 在点击按钮时显示 toast 。

下面的代码显示传感器信息,但无法点击按钮:

package com.example.hello;

import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;




public class HelloAndroid extends Activity implements OnClickListener {
/* Called when the activity is first created. */
private SensorManager mSensorManager;
private Sensor mSensor;
private float[] mValues;

public void onClick(View v) {
// do something when the button is clicked
Context context = getApplicationContext();
Toast toast = Toast.makeText(context, "Hello", Toast.LENGTH_LONG);
toast.show();

}

private final SensorEventListener mListener = new SensorEventListener() {
public void onSensorChanged(SensorEvent event) {
mValues = event.values;
setContentView(R.layout.main);
TextView t=(TextView)findViewById(R.id.status);
t.setText(Float.toString(mValues[0]) + "\n" +
Float.toString(mValues[1]) + "\n" +
Float.toString(mValues[2]));
}

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


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

Button button = (Button)findViewById(R.id.start);
button.setOnClickListener(this);


mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);

mSensorManager.registerListener(mListener, mSensor,
SensorManager.SENSOR_DELAY_GAME);

}



}

如果我注释显示传感器信息的部分代码,按钮开始工作:

    private final SensorEventListener mListener = new SensorEventListener() {
public void onSensorChanged(SensorEvent event) {
mValues = event.values;
/* setContentView(R.layout.main);
TextView t=(TextView)findViewById(R.id.status);
t.setText(Float.toString(mValues[0]) + "\n" +
Float.toString(mValues[1]) + "\n" +
Float.toString(mValues[2]));
*/ }

我做错了什么?如何让两者同时工作?

最佳答案

也许您可以尝试仅在 onCreate 上设置上下文 View 。不要在 SensorEvent 监听器上再次设置它。

关于java - 无法让按钮与其他代码同时工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8242948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com