else{ //this is part of some onclick listener of a button in the program
slider.close();
mapView.setClickable(false);
Toast.makeText(getBaseContext(), "GPS cannot retrieve your location. GPS needs clear sky or service is off. Please turn on GPS service.", Toast.LENGTH_LONG).show();
final Button bt = (Button)findViewById(R.id.turnGPS);
bt.setVisibility(View.VISIBLE);
bt.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
Intent activateGps = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
//Map.this.startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
Map.this.startActivityForResult(activateGps, RESULT_OK);
//bt.setVisibility(View.INVISIBLE);
return false;
}
});
}
}
사용자가 GPS를 활성화 할 수 있도록 새로운 의도를 시작하고 싶습니다 (GPS가 활성화되지 않은 경우). Activity가 성공했는지 아닌지를 응답 할 수있는 startActivityForResult 메소드를 사용했습니다. 성공하면 사용자 인터페이스에서 몇 가지 변경 작업을 수행해야합니다. 시도했지만 GPS를 사용하도록 설정했지만 UI는 변경하지 않았습니다 (예 : 버튼이 숨기지 않음). 내가 뭘 잘못하고있어?onActivityResult for Intent
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode==RESULT_OK)
{
if(resultCode == RESULT_OK && locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER))
{
Button bt = (Button)findViewById(R.id.turnGPS);
bt.setVisibility(View.INVISIBLE);
this.finish();
}
else if(resultCode == RESULT_CANCELED)
{
Toast.makeText(getBaseContext(), "No GPS device or service enabled", Toast.LENGTH_LONG+Toast.LENGTH_LONG).show();
}
}
super.onActivityResult(requestCode, resultCode, data);
}
여기 내 onActivityResult 메소드입니다. this.finish()가 있습니까? 현재 액티비티가 사용 가능할 때 종료하므로 OnResume()이 시작됩니다.
답변에 대한 설명을 추가하십시오. – Onik