Android fragments 姜饼2.3.3中未开始的活动

Android fragments 姜饼2.3.3中未开始的活动,android-fragments,google-maps-android-api-2,android-fragmentactivity,Android Fragments,Google Maps Android Api 2,Android Fragmentactivity,从片段打开新活动时遇到问题我的活动包含映射片段v2。。它在api 4.0及以上版本上运行良好。。但是我在姜饼2.3.3上遇到了麻烦,它给了我一个力闭合错误 public class PerxListDetailFragment extends ListFragment { // Hashmap for ListView ArrayList<PerxDetailListModel> datalist ; protected PerxDetailListAdapter adapter;

从片段打开新活动时遇到问题我的活动包含映射片段v2。。它在api 4.0及以上版本上运行良好。。但是我在姜饼2.3.3上遇到了麻烦,它给了我一个力闭合错误

public class PerxListDetailFragment extends ListFragment {

// Hashmap for ListView
ArrayList<PerxDetailListModel> datalist ;
protected PerxDetailListAdapter adapter;
protected ListView listview;
protected String url;
protected static String id;
protected static String name;
//JSON names
private static final String TAG_businessId              = "b_id";
private static final String TAG_businessName            = "businessName";
private static final String TAG_businessDescription     = "businessDescription";
private static final String TAG_businessLocation        = "businessLocation";
private static final String TAG_businessAddress         = "businessAddress";


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
super.onCreate(savedInstanceState); 
    Bundle bundle = new Bundle();
    bundle      = this.getArguments();
    SharedPreferences user_data = getActivity().getSharedPreferences("userData", 0);

    String bid = user_data.getString("BUSINESSROLEID", null);
    id          = bundle.getString("id");
    name    = bundle.getString("name");

    url     = "http://projects.gaditek.com/mobile/ihirsto/services/getBusiness.php?businessCategoryID="+id +"&businessRole="+bid;

    return inflater.inflate(R.layout.perx_list_detail, null, true);
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
            TextView t = (TextView) getView().findViewById(R.id.perx_list_heading);
            t.setText(name);
            datalist = new ArrayList<PerxDetailListModel>();
            listview = getListView();
            if(datalist.isEmpty()){
                new DownloadData().execute();
            }
            listview.setOnItemClickListener(new OnItemClickListener() 
            {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,int position, long id) {


                    // Starting new intent
                    String venueName = datalist.get(position).getName().toString();
                    String desc = datalist.get(position).getDescription().toString();
                    String address = datalist.get(position).getAddress().toString();
                    String maplong = datalist.get(position).getlongitude().toString();
                    String maplat = datalist.get(position).getlatitude().toString();

                    Intent intent = new Intent(getActivity().getApplicationContext(), PerxDetailedActivity.class);


               intent.putExtra("heading", name);
                    intent.putExtra("venueName", venueName);
                    intent.putExtra("desc", desc);
                    intent.putExtra("address", address);
                    intent.putExtra("longitude", maplong);
                    intent.putExtra("latitude", maplat);

               startActivity(intent);



                }


            });

        }


        public void addFragment(Fragment fragment, boolean addToBackStack,int transition) 
        {   
            FragmentTransaction ft = getFragmentManager().beginTransaction();
            ft.replace(R.id.simple_fragment, fragment, null);
            ft.setTransition(transition);
            if (addToBackStack)
                ft.addToBackStack(null);
            ft.commit();
        }
日志


您好,这是一个兼容性错误,位于:

E/AndroidRuntime(6549):由:java.lang.ClassNotFoundException:android.view.fragment在加载程序dalvik.system.PathClassLoader[/data/app/com.gaditek.ihistro-1.apk]中引起

您正试图在代码中使用
Fragment
,但要使Fragment在姜饼和姜饼下工作,您必须从Google导入一个兼容性库:在这里查找和此

因此,请确保将您的
活动
转换为
FragmentActivity
,并使用
getSupportFragmentManager()
而不是
getFragmentManager()


您好,这是一个兼容性错误,位于:

E/AndroidRuntime(6549):由:java.lang.ClassNotFoundException:android.view.fragment在加载程序dalvik.system.PathClassLoader[/data/app/com.gaditek.ihistro-1.apk]中引起

您正试图在代码中使用
Fragment
,但要使Fragment在姜饼和姜饼下工作,您必须从Google导入一个兼容性库:在这里查找和此

因此,请确保将您的
活动
转换为
FragmentActivity
,并使用
getSupportFragmentManager()
而不是
getFragmentManager()


我才发现问题就在这里

map=((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap()

应该是

map=((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap()

正如@Glenn所述,活动需要通过碎片活动而不是活动进行扩展
.. 因此解决了

我才发现问题就在这里

map=((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap()

应该是

map=((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap()

正如@Glenn所述,活动需要通过碎片活动而不是活动进行扩展
.. 因此解决了

我面临的启动活动问题。。i-e PerxDetailedActivity包含map v2库的另一个片段是的,这是正常的,但错误并不总是位于第一行。你必须添加,以使你的应用程序在姜饼上工作。是的,整个应用程序使用的是片段,除了这一部分,工作正常。。。。当我需要打开一个新的活动时,用编辑过的代码(和导入)更新你的帖子。确保将所有
活动
转化为
碎片活动
我在开始活动时面临问题。。i-e PerxDetailedActivity包含map v2库的另一个片段是的,这是正常的,但错误并不总是位于第一行。你必须添加,以使你的应用程序在姜饼上工作。是的,整个应用程序使用的是片段,除了这一部分,工作正常。。。。当我需要打开一个新的活动时,用编辑过的代码(和导入)更新你的帖子。确保将所有
活动
转换为
片段活动
@SuppressLint("NewApi")
public class PerxDetailedActivity extends Activity{

    String headingName;String venueName;String desc ;String address;
    String latitude;String longitude;

      static LatLng HAMBURG;
      private GoogleMap map;

     @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.perx_detailed);
        Intent intent = new Intent();

         Bundle extras = getIntent().getExtras();

        headingName = extras.getString("heading");
        venueName   = extras.getString("venueName");
        desc        = extras.getString("desc");
        address     = extras.getString("address");
        longitude   = extras.getString("longitude");
        latitude    = extras.getString("latitude");
        Double longi = Double.parseDouble(longitude);
        Double lati = Double.parseDouble(latitude);
        HAMBURG =  new LatLng(lati, longi);


         map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

         Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
                    .title(venueName));


    // Move the camera instantly to hamburg with a zoom of 15.
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));

        // Zoom in, animating the camera.
        map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);



    }

}
06-01 18:26:16.546: E/AndroidRuntime(6549): FATAL EXCEPTION: main
06-01 18:26:16.546: E/AndroidRuntime(6549): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gaditek.ihistro/com.gaditek.ihistro.PerxDetailedActivity}: android.view.InflateException: Binary XML file line #151: Error inflating class fragment
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1816)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.app.ActivityThread.access$1500(ActivityThread.java:132)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1033)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.os.Looper.loop(Looper.java:143)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.app.ActivityThread.main(ActivityThread.java:4196)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at java.lang.reflect.Method.invokeNative(Native Method)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at java.lang.reflect.Method.invoke(Method.java:507)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at dalvik.system.NativeStart.main(Native Method)
06-01 18:26:16.546: E/AndroidRuntime(6549): Caused by: android.view.InflateException: Binary XML file line #151: Error inflating class fragment
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:224)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.app.Activity.setContentView(Activity.java:1702)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at com.gaditek.ihistro.PerxDetailedActivity.onCreate(PerxDetailedActivity.java:40)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1780)
06-01 18:26:16.546: E/AndroidRuntime(6549):     ... 11 more
06-01 18:26:16.546: E/AndroidRuntime(6549): Caused by: java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClassLoader[/data/app/com.gaditek.ihistro-1.apk]
06-01 18:26:16.546: E/AndroidRuntime(6549):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.view.LayoutInflater.createView(LayoutInflater.java:471)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:549)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66)
06-01 18:26:16.546: E/AndroidRuntime(6549):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
06-01 18:26:16.546: E/AndroidRuntime(6549):     ... 21 more
 public void addFragment(Fragment fragment, boolean addToBackStack,int transition) 
        {   
            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            ft.replace(R.id.simple_fragment, fragment, null);
            ft.setTransition(transition);
            if (addToBackStack)
                ft.addToBackStack(null);
            ft.commit();
        }