我正在尝试编写一个应用程序,该应用程序可以持续监视我的运行速度,并告诉我如果运行缓慢则要加快速度,反之亦然。我的代码没有错误,但是我的TextView文本没有更改,这与我的代码所假定的一样。请看一下我的mainActivity.java代码:
package com.example.kaushik.speed_measurement;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.speech.tts.TextToSpeech;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Locale;
public class MainActivity extends AppCompatActivity implements LocationListener {
TextToSpeech toSpeech;
int status;
String text;
String text1;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LocationManager lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
this.onLocationChanged(null);
toSpeech=new TextToSpeech(MainActivity.this, new TextToSpeech.OnInitListener(){
@Override
public void onInit(int i) {
if ( status ==TextToSpeech.SUCCESS) {
toSpeech.setLanguage(Locale.UK);
}
else{
Toast.makeText(getApplicationContext(), "Feature not supported",
Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public void onPointerCaptureChanged(boolean hasCapture) {
}
@Override
public void onLocationChanged(Location location) {
TextView txt = (TextView) this.findViewById(R.id.speed);
if (location==null){
txt.setText("-,- m/s");
}
else{
float nCurrentSpeed=location.getSpeed();
txt.setText(nCurrentSpeed + "m/s");
if (nCurrentSpeed<5) {
TextView txt1 = (TextView) this.findViewById(R.id.message);
txt.setText("Speed up!");
text = ("Speed up");
toSpeech.speak(text, TextToSpeech.QUEUE_FLUSH,null);
}
else{
TextView txt1 = (TextView) this.findViewById(R.id.message);
txt1.setText("Slow down");
text1 = ("Slow down");
toSpeech.speak(text1, TextToSpeech.QUEUE_FLUSH,null);
}
}
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
}