我有一个应用需要使用位置服务来实现其功能之一。因此,当用户点击按钮时,我希望我的应用程序检查设备是否启用了位置服务,以及是否未提示用户通过AlertDialog启用它。当用户单击“启用位置服务”按钮时,我希望应用程序将用户带到用户可以启用它的设置页面。
我的问题是当用户点击“启用位置服务”时 按钮,而不是打开设置页面,应用程序直接 进入主要活动。
注意:这一切都发生在父活动是我的第二个活动的片段中。以下是我的应用的布局: MainActivity (登录页面)=> 第二项活动(家长活动)=> 片段(必须进行此项检查)。
这是我在片段的onCreateView方法中的代码:
currentLoc.setOnClickListener(new View.OnClickListener() {
DataActivity dataActivity = (DataActivity) getActivity();
Context context = getActivity().getApplicationContext();
@Override
public void onClick(View view) {
if (!dataActivity.isLocationServiceEnabled()){
final AlertDialog alertDialog = new AlertDialog.Builder(getActivity()).create();
alertDialog.setTitle("Alert");
alertDialog.setMessage("To use this feature, you must first enable location services");
alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "Enable Location Services", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent gpsOptionsIntent = new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(gpsOptionsIntent);
}});
alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}});
alertDialog.show();
}
else {
AlertDialog alertDialog = new AlertDialog.Builder(getActivity()).create();
alertDialog.setTitle("Alert");
alertDialog.setMessage("GPS Enabled...");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alertDialog.show();
}
}
});
注意:currentLoc是在内部创建的imageView fragment_layout文件
更多信息:
我尝试过无数种使用意图的变种,对于这个项目,他们都将我带回登录页面(MainActivity)。当我创建一个新项目并使用相同的代码时,它可以工作......