#android #android-activity
Вопрос:
Всплывающее сообщение об ошибке
Класс бетона:
'''public class MarkedSpot extends AppCompatActivity {
private String owner;
private FusedLocationProviderClient fusedLocationProviderClient;
private LocationRequest locationRequest;
public MarkedSpot(){
this.owner = "";
locationRequest = new LocationRequest();
locationRequest.setInterval(3000);
locationRequest.setFastestInterval(1000);
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
/* Above is where the exception is thrown, when assigning fusedLocationProviderClient */
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
if(ActivityCompat.checkSelfPermission(MarkedSpot.this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_DENIED){
ActivityCompat.requestPermissions(MarkedSpot.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 45);
}
}
}
@SuppressLint("MissingPermission")
public void updateGPS(){
fusedLocationProviderClient.getLastLocation().addOnSuccessListener(MarkedSpot.this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults){
super.onRequestPermissionsResult(requestCode,permissions,grantResults);
switch (requestCode){
case 45:
if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
updateGPS();
}
else{
Toast.makeText(this,"This app requires permission", Toast.LENGTH_SHORT).show();
}
}
}
}»’
По какой-то причине мне трудно писать, это моя первая публикация, так что потерпите меня. Я не уверен, сколько еще мне придется продолжать эту текущую формулировку, потому что по какой-то причине она не позволит мне это сделать из-за «в основном кодирования».
Комментарии:
1. Этот класс расширяется
Activity
. Вы хотите создатьActivity
или вы хотите создать класс POJO?2. кроме того, вы не можете просто опубликовать кучу кода. Ожидается, что вы опишете свою проблему и объясните, что вы сделали, а что не работает.
Ответ №1:
Код, который у вас есть в конструкторе, необходимо переместить onCreate()
. Переопределите onCreate()
и поместите код, который у вас есть в конструкторе, туда. Обязательно позвони super.onCreate()
.
У вас не должно быть конструктора для an Activity
, Android настраивает экземпляр, а затем вызывает onCreate()
. Сделайте свою инициализацию там.