Java 我可以在这里实现这个按钮并修改一些textView值吗?我总是出错

Java 我可以在这里实现这个按钮并修改一些textView值吗?我总是出错,java,android,button,textview,Java,Android,Button,Textview,在这里,我尝试添加我的按钮和文本视图,效果很好 package com.andineagoe.gradienttermic; import android.app.Activity; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hard

在这里,我尝试添加我的按钮和文本视图,效果很好

    package com.andineagoe.gradienttermic;

    import android.app.Activity;
    import android.hardware.Sensor;
    import android.hardware.SensorEvent;
    import android.hardware.SensorEventListener;
    import android.hardware.SensorManager;
    import android.os.Bundle;
    import android.os.SystemClock;
    import android.view.KeyEvent;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;

    public class PressureAltimeterActivity extends Activity implements SensorEventListener {

        private PressureAltimeterActivity this_activity_;
        protected Sensor sensor_pressure_;
        protected SensorManager sensor_manager_;
        protected double slp_inHg_;
        protected double pressure_hPa_;
        protected KalmanFilter pressure_hPa_filter_;
        protected double last_measurement_time_;

        private static final double SLT_K = 288.15; 
        private static final double TLAPSE_K_PER_M = -0.0065; 
        private static final double G_M_PER_S_PER_S = 9.80665;
        private static final double R_J_PER_KG_PER_K = 287.052; 
        private static final double PA_PER_INHG = 3386; 
        private static final double FT_PER_M = 3.2808399;  
        private static final double KF_VAR_ACCEL = 0.0075; 
        private static final double KF_VAR_MEASUREMENT = 0.05;
现在,当我尝试设置onClick侦听器时,出现了3-4个错误 这条线上有多个标记 -标记“setOnClickListener”上的语法错误,=应在 这个令牌 -令牌上的语法错误,构造位置错误

PressureAltimeterActivity类型的onClick(View)方法必须重写或实现超类型方法 语法错误,插入“}”以完成类正文

        **Button mButton = (Button) findViewById(R.id.saveButton);
        TextView mPressure = (TextView) findViewById(R.id.pressureValue);
        TextView mTemperature = (TextView) findViewById(R.id.tempValue);
        TextView mLogSave = (TextView) findViewById(R.id.logSave);
我只想在每次按下按钮时修改一些日志,但我似乎无法这样做

        mButton.setOnClickListener(new View.onClickListner(){

            @Override
            public void onClick(View v){

            //do stuff

            });

        public void saveData (){

        }**
@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
压力hPa过滤器=新Kalman过滤器(KF变量加速度);
setContentView(R.layout.main);
传感器管理器=(传感器管理器)getSystemService(传感器服务);
传感器压力=传感器管理器getDefaultSensor(传感器类型压力);
}
@凌驾
恢复时公开作废(){
super.onResume();
这个活动=这个;
如果(slp_inHg_<28.1 | slp_inHg_>31.0)slp_inHg=29.92;
压力=1013.0912;
压力过滤器复位(压力);
上次测量时间=SystemClock.elapsedRealtime()/1000。;
如果(传感器压力=零){
传感器管理器寄存器列表器(此,传感器压力,传感器管理器,传感器延迟游戏);
} 
}
@凌驾
公共无效暂停(){
super.onPause();
传感器\管理器\注销侦听器(此);
}
@凌驾
公共空间{
super.ondestory();
}
SaveInstanceState上受保护的空(捆绑包){
super.onSaveInstanceState(bundle);
bundle.putDouble(“slp_inHg”,slp_inHg);
}
受保护的无效onRestoreInstanceState(捆绑包){
super.onRestoreInstanceState(bundle);
slp_inHg=bundle.getDouble(“slp_inHg”);
}
公共布尔onKeyDown(int-key\u代码、KeyEvent-key\u事件){
如果(键\u代码!=KeyEvent.KEYCODE\u音量向上&&
key\u code!=KeyEvent.KEYCODE\u VOLUME\u DOWN)返回false;
long slp_inHg_long=数学整数(100.0*slp_inHg_);
if(key\u code==KeyEvent.KEYCODE\u VOLUME\u UP){
if(slp_inhu_long<4031)++slp_inhu_long;
}else if(key\u code==KeyEvent.KEYCODE\u VOLUME\u DOWN){
如果(slp_ingh_long>2028年)——slp_ingh_long;
}
slp_inHg_=slp_inHg_long/100.0;
返回true;
}
公共布尔onKeyUp(int-key\u代码、KeyEvent-key\u事件){
return key\u code==KeyEvent.KEYCODE\u VOLUME\u UP||
key_code==KeyEvent.KEYCODE_VOLUME_DOWN;
}
已更改准确性上的公共无效信息(传感器arg0、内部arg1){
}
传感器更改时的公共无效(传感器事件){
if(event.sensor.getType()!=sensor.TYPE_PRESSURE)return;//不应出现。
压力=事件值[0];
最终双电流测量时间=SystemClock.elapsedRealtime()/1000。;
最终双dt=当前测量时间-上次测量时间;
压力hPa过滤器更新(压力hPa,KF变量测量,dt);
上次测量时间=当前测量时间;
double inaltime=(长)hPa英尺(slp_inHg_,压力_hPa_过滤器_.getXAbs());
TextView TextView=(TextView)findViewById(R.id.pressureValue);
textView.setText(“+inaltime”);
}
专用静态双hPa脚(双slp\U inHg、双压力\U hPa){
双因子m=每平方米的SLT K/TLAPSE K;
双指数=-TLAPSE_K_PER_M*R_J_PER_KG_PER_K/G_M_PER_S_;
双流、海平面、压力、气压=slp\U inHg*Pa每inHg;
双高度=
因子*
(数学功率(100.0*压力×hPa/海流×海平面×压力×Pa,指数)-1.0);
返回/**英尺/米**/高度/米;
}
}

尝试将
OnClickListener
实现到您的类和方法
onClick

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            pressure_hPa_filter_ = new KalmanFilter(KF_VAR_ACCEL);

            setContentView(R.layout.main);

            sensor_manager_ = (SensorManager) getSystemService(SENSOR_SERVICE);
            sensor_pressure_ = sensor_manager_.getDefaultSensor(Sensor.TYPE_PRESSURE);

        }

        @Override
        public void onResume() {
            super.onResume();

            this_activity_ = this;

            if (slp_inHg_ < 28.1 || slp_inHg_ > 31.0) slp_inHg_ = 29.92;

            pressure_hPa_ = 1013.0912;
            pressure_hPa_filter_.reset(pressure_hPa_);
            last_measurement_time_ = SystemClock.elapsedRealtime() / 1000.;

            if (sensor_pressure_ != null) {
                sensor_manager_.registerListener(this, sensor_pressure_, SensorManager.SENSOR_DELAY_GAME);
            } 
       }


        @Override
        public void onPause() {
            super.onPause();
            sensor_manager_.unregisterListener(this);
        }

        @Override
        public void onDestroy() {
            super.onDestroy();
        }

        protected void onSaveInstanceState(Bundle bundle) {
            super.onSaveInstanceState(bundle);
            bundle.putDouble("slp_inHg", slp_inHg_);
        }

        protected void onRestoreInstanceState(Bundle bundle) {
            super.onRestoreInstanceState(bundle);
            slp_inHg_ = bundle.getDouble("slp_inHg");
        }

        public boolean onKeyDown(int key_code, KeyEvent key_event) {
            if (key_code != KeyEvent.KEYCODE_VOLUME_UP &&
                key_code != KeyEvent.KEYCODE_VOLUME_DOWN) return false;

            long slp_inHg_long = Math.round(100.0 * slp_inHg_);
            if (key_code == KeyEvent.KEYCODE_VOLUME_UP) {
                if (slp_inHg_long < 4031) ++slp_inHg_long;
            } else if (key_code == KeyEvent.KEYCODE_VOLUME_DOWN) {
                if (slp_inHg_long > 2028) --slp_inHg_long;
            }
            slp_inHg_ = slp_inHg_long / 100.0;

            return true;
        }

        public boolean onKeyUp(int key_code, KeyEvent key_event) {
            return key_code == KeyEvent.KEYCODE_VOLUME_UP ||
                   key_code == KeyEvent.KEYCODE_VOLUME_DOWN;
        }


        public void onAccuracyChanged(Sensor arg0, int arg1) {
        }

        public void onSensorChanged(SensorEvent event) {

            if (event.sensor.getType() != Sensor.TYPE_PRESSURE) return;  // Should not occur.
            pressure_hPa_ = event.values[0];

            final double curr_measurement_time = SystemClock.elapsedRealtime() / 1000.;
            final double dt = curr_measurement_time - last_measurement_time_;
            pressure_hPa_filter_.update(pressure_hPa_, KF_VAR_MEASUREMENT, dt);
            last_measurement_time_ = curr_measurement_time;

            double inaltime = (long)hPaToFeet(slp_inHg_, pressure_hPa_filter_.getXAbs());
            TextView textView = (TextView) findViewById(R.id.pressureValue);
            textView.setText("" + inaltime);
        }

        private static double hPaToFeet(double slp_inHg, double pressure_hPa) {
            double factor_m = SLT_K / TLAPSE_K_PER_M;
            double exponent = -TLAPSE_K_PER_M * R_J_PER_KG_PER_K / G_M_PER_S_PER_S;     
            double current_sea_level_pressure_Pa = slp_inHg * PA_PER_INHG;
            double altitude_m =
                    factor_m *
                    (Math.pow(100.0 * pressure_hPa / current_sea_level_pressure_Pa, exponent) - 1.0);
            return /**FT_PER_M* */  altitude_m;
        }

    }

尝试对类和方法
onClick
实现
onClick

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            pressure_hPa_filter_ = new KalmanFilter(KF_VAR_ACCEL);

            setContentView(R.layout.main);

            sensor_manager_ = (SensorManager) getSystemService(SENSOR_SERVICE);
            sensor_pressure_ = sensor_manager_.getDefaultSensor(Sensor.TYPE_PRESSURE);

        }

        @Override
        public void onResume() {
            super.onResume();

            this_activity_ = this;

            if (slp_inHg_ < 28.1 || slp_inHg_ > 31.0) slp_inHg_ = 29.92;

            pressure_hPa_ = 1013.0912;
            pressure_hPa_filter_.reset(pressure_hPa_);
            last_measurement_time_ = SystemClock.elapsedRealtime() / 1000.;

            if (sensor_pressure_ != null) {
                sensor_manager_.registerListener(this, sensor_pressure_, SensorManager.SENSOR_DELAY_GAME);
            } 
       }


        @Override
        public void onPause() {
            super.onPause();
            sensor_manager_.unregisterListener(this);
        }

        @Override
        public void onDestroy() {
            super.onDestroy();
        }

        protected void onSaveInstanceState(Bundle bundle) {
            super.onSaveInstanceState(bundle);
            bundle.putDouble("slp_inHg", slp_inHg_);
        }

        protected void onRestoreInstanceState(Bundle bundle) {
            super.onRestoreInstanceState(bundle);
            slp_inHg_ = bundle.getDouble("slp_inHg");
        }

        public boolean onKeyDown(int key_code, KeyEvent key_event) {
            if (key_code != KeyEvent.KEYCODE_VOLUME_UP &&
                key_code != KeyEvent.KEYCODE_VOLUME_DOWN) return false;

            long slp_inHg_long = Math.round(100.0 * slp_inHg_);
            if (key_code == KeyEvent.KEYCODE_VOLUME_UP) {
                if (slp_inHg_long < 4031) ++slp_inHg_long;
            } else if (key_code == KeyEvent.KEYCODE_VOLUME_DOWN) {
                if (slp_inHg_long > 2028) --slp_inHg_long;
            }
            slp_inHg_ = slp_inHg_long / 100.0;

            return true;
        }

        public boolean onKeyUp(int key_code, KeyEvent key_event) {
            return key_code == KeyEvent.KEYCODE_VOLUME_UP ||
                   key_code == KeyEvent.KEYCODE_VOLUME_DOWN;
        }


        public void onAccuracyChanged(Sensor arg0, int arg1) {
        }

        public void onSensorChanged(SensorEvent event) {

            if (event.sensor.getType() != Sensor.TYPE_PRESSURE) return;  // Should not occur.
            pressure_hPa_ = event.values[0];

            final double curr_measurement_time = SystemClock.elapsedRealtime() / 1000.;
            final double dt = curr_measurement_time - last_measurement_time_;
            pressure_hPa_filter_.update(pressure_hPa_, KF_VAR_MEASUREMENT, dt);
            last_measurement_time_ = curr_measurement_time;

            double inaltime = (long)hPaToFeet(slp_inHg_, pressure_hPa_filter_.getXAbs());
            TextView textView = (TextView) findViewById(R.id.pressureValue);
            textView.setText("" + inaltime);
        }

        private static double hPaToFeet(double slp_inHg, double pressure_hPa) {
            double factor_m = SLT_K / TLAPSE_K_PER_M;
            double exponent = -TLAPSE_K_PER_M * R_J_PER_KG_PER_K / G_M_PER_S_PER_S;     
            double current_sea_level_pressure_Pa = slp_inHg * PA_PER_INHG;
            double altitude_m =
                    factor_m *
                    (Math.pow(100.0 * pressure_hPa / current_sea_level_pressure_Pa, exponent) - 1.0);
            return /**FT_PER_M* */  altitude_m;
        }

    }

说真的,这个问题是怎么被提出来的???我不明白。再说一遍,主要问题是什么?您可以发布日志吗?此行有多个标记-标记“setOnClickListener”上的语法错误,=此标记后应出现语法错误-标记上的语法错误,结构错位。PressureAltimeterActivity类型的方法onClick(View)必须重写或实现超类型方法语法错误,插入“}”为了完成类主体,我得到了这些错误。无法编译或显示logcat的任何内容。
插入“}”以完成类正文
一个真正的问题-您不理解哪一位?@Androyds OP如何发布编译器错误的logcat?说真的,这个问题是如何升级的???无法理解。再说一遍,主要问题是什么?您可以发布日志吗?此行有多个标记-标记“setOnClickListener”上的语法错误,=此标记后应出现语法错误-标记上的语法错误,结构错位。PressureAltimeterActivity类型的方法onClick(View)必须重写或实现超类型方法语法错误,插入“}”为了完成类主体,我得到了这些错误。无法编译或显示logcat的任何内容。
插入“}”以完成类正文
一个真正的问题-您不理解哪一位?@Androyds OP如何发布logcat以查找编译器错误?