Android 如何通过按AlertDialog.Builder(即Builder.setNegativeButton)的按钮从活动转到片段
当我按下“否”(即AlertDialog.builder的builder.setNegative按钮)时,会出现一个错误:Android 如何通过按AlertDialog.Builder(即Builder.setNegativeButton)的按钮从活动转到片段,android,android-fragments,classcastexception,activitynotfoundexception,Android,Android Fragments,Classcastexception,Activitynotfoundexception,当我按下“否”(即AlertDialog.builder的builder.setNegative按钮)时,会出现一个错误: 02-02 22:05:44.360: E/AndroidRuntime(18022): FATAL EXCEPTION: main 02-02 22:05:44.360: E/AndroidRuntime(18022): android.content.ActivityNotFoundException: Unable to find explicit activity
02-02 22:05:44.360: E/AndroidRuntime(18022): FATAL EXCEPTION: main
02-02 22:05:44.360: E/AndroidRuntime(18022): android.content.ActivityNotFoundException:
Unable to find explicit activity class {com.mamun.tasktest/com.mamun.tasktest
.FragmentB}; have you declared this activity in your AndroidManifest.xml?
当我在清单中添加FragmentB时,也会出现另一个错误:
02-02 22:20:34.030: E/AndroidRuntime(18671): FATAL EXCEPTION: main
02-02 22:20:34.030: E/AndroidRuntime(18671): java.lang.RuntimeException: Unable to
instantiate activity ComponentInfo{com.mamun.tasktest/com.mamun.tasktest
.FragmentB}: java.lang.ClassCastException: com.mamun.tasktest.FragmentB cannot be
cast to android.app.Activity
MapActivity.java:
package com.mamun.tasktest;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.LocationManager;
import android.os.Bundle;
import android.provider.Settings;
public class MapActivity extends Activity{
private LocationManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
manager = (LocationManager)getSystemService(LOCATION_SERVICE);
super.onCreate(savedInstanceState);
if(manager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
setContentView(R.layout.map);
}
else if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("GPS is currently disabled");
builder.setMessage("Please enable it to select location.\nWould you like to change these settings now?");
builder.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent i = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(i);
setContentView(R.layout.map);
}
});
builder.setNegativeButton("No",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent in = new Intent(MapActivity.this,FragmentB.class);
startActivity(in);
}
});
builder.create().show();
}
}
}
FragmentB.java
您不能在=新意图(MapActivity.this,FragmentB.class)中执行
Intent代码>因为片段
不是活动
并且不能以这种方式运行新片段。片段不是活动!你不能在舱单上申报。您应该使用碎片活动。您尝试过这种方法吗
FragmentManager fragmentManager = getSupportFragmentManager();
PropertiesActivity propertiesActivity = new PropertiesActivity();
fragmentManager.beginTransaction().replace(R.id.Main_content,propertiesActivity).commit();
“当我按“否”时,它会给我一个错误。”。。。假设什么?我已经编辑了我的问题,请看@Toborb,但是我如何运行一个新的片段请告诉我@Jedilyo你必须创建一个包含这个片段的新活动吗,查看此项了解更多信息。
FragmentManager fragmentManager = getSupportFragmentManager();
PropertiesActivity propertiesActivity = new PropertiesActivity();
fragmentManager.beginTransaction().replace(R.id.Main_content,propertiesActivity).commit();