2013-08-13 5 views
0

나는 슬라이딩 메뉴를 만들 수 있지만 로그는 나에게 메세지를 지정하지 않고 보여줍니다오류 슬라이딩 메뉴

08-13 18:19:08.064: E/AndroidRuntime(755): FATAL EXCEPTION: main 
08-13 18:19:08.064: E/AndroidRuntime(755): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.testeslidingmenuagvdnc/com.example.testeslidingmenuagvdnc.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1736) 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752) 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.app.ActivityThread.access$1500(ActivityThread.java:123) 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993) 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.os.Handler.dispatchMessage(Handler.java:99) 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.os.Looper.loop(Looper.java:126) 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.app.ActivityThread.main(ActivityThread.java:3997) 
08-13 18:19:08.064: E/AndroidRuntime(755): at java.lang.reflect.Method.invokeNative(Native Method) 
08-13 18:19:08.064: E/AndroidRuntime(755): at java.lang.reflect.Method.invoke(Method.java:491) 
08-13 18:19:08.064: E/AndroidRuntime(755): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
08-13 18:19:08.064: E/AndroidRuntime(755): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
08-13 18:19:08.064: E/AndroidRuntime(755): at dalvik.system.NativeStart.main(Native Method) 
08-13 18:19:08.064: E/AndroidRuntime(755): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:688) 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.view.LayoutInflater.inflate(LayoutInflater.java:457) 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.view.LayoutInflater.inflate(LayoutInflater.java:391) 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.view.LayoutInflater.inflate(LayoutInflater.java:347) 
08-13 18:19:08.064: E/AndroidRuntime(755): at com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.setMenu(SlidingMenu.java:375) 
08-13 18:19:08.064: E/AndroidRuntime(755): at com.example.testeslidingmenuagvdnc.MainActivity.onCreate(MainActivity.java:28) 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700) 
08-13 18:19:08.064: E/AndroidRuntime(755): ... 11 more 
08-13 18:19:08.064: E/AndroidRuntime(755): Caused by: java.lang.ClassCastException: com.example.testeslidingmenuagvdnc.SlidingMenuFragment cannot be cast to android.app.Fragment 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.app.Fragment.instantiate(Fragment.java:493) 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.app.Fragment.instantiate(Fragment.java:468) 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.app.Activity.onCreateView(Activity.java:4081) 
08-13 18:19:08.064: E/AndroidRuntime(755): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:664) 
08-13 18:19:08.064: E/AndroidRuntime(755): ... 18 more 

슬라이딩 메뉴를

public class SlidingMenuFragment extends Fragment implements ExpandableListView.OnChildClickListener { 

     private ExpandableListView sectionListView; 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 

      List<Section> sectionList = createMenu(); 

      View view = inflater.inflate(R.layout.slidingmenu_fragment, container, false); 
      this.sectionListView = (ExpandableListView) view.findViewById(R.id.slidingmenu_view); 
      this.sectionListView.setGroupIndicator(null); 

      SectionListAdapter sectionListAdapter = new SectionListAdapter(this.getActivity(), sectionList); 
      this.sectionListView.setAdapter(sectionListAdapter); 

      this.sectionListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { 
        @Override 
        public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { 
        return true; 
        } 
       }); 

      this.sectionListView.setOnChildClickListener(this); 

      int count = sectionListAdapter.getGroupCount(); 
      for (int position = 0; position < count; position++) { 
       this.sectionListView.expandGroup(position); 
      } 

      return view; 
     } 

     private List<Section> createMenu() { 
      List<Section> sectionList = new ArrayList<Section>(); 

      Section oDemoSection = new Section("Demos"); 
      oDemoSection.addSectionItem(101,"List/Detail (Fragment)", "slidingmenu_friends"); 
      oDemoSection.addSectionItem(102, "Airport (AsyncTask)", "slidingmenu_airport"); 

      Section oGeneralSection = new Section("General"); 
      oGeneralSection.addSectionItem(201, "Settings", "slidingmenu_settings"); 
      oGeneralSection.addSectionItem(202, "Rate this app", "slidingmenu_rating"); 
      oGeneralSection.addSectionItem(203, "Eula", "slidingmenu_eula"); 
      oGeneralSection.addSectionItem(204, "Quit", "slidingmenu_quit"); 

      sectionList.add(oDemoSection); 
      sectionList.add(oGeneralSection); 
      return sectionList; 
     } 

     @Override 
     public boolean onChildClick(ExpandableListView parent, View v, 
       int groupPosition, int childPosition, long id) { 

      switch ((int)id) { 
      case 101: 
       //TODO 
       break; 
      case 102: 
       //TODO 
       break; 
      case 201: 
       //TODO 
       break; 
      case 202: 
       //TODO 
       break; 
      case 203: 
       //TODO 
       break; 
      case 204: 
       //TODO 
       break; 
      } 

      return false; 
     } 
    } 

내 활동 :

공용 클래스 MainActivity가 활동 { 를 확장 개인 SlidingMenu slidingMenu;

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    slidingMenu = new SlidingMenu(this); 
    slidingMenu.setMode(SlidingMenu.LEFT); 
    slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 
    slidingMenu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width); 
    slidingMenu.setShadowDrawable(R.drawable.slidingmenu_shadow); 
    slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset); 
    slidingMenu.setFadeDegree(0.35f); 
    slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); 
    slidingMenu.setMenu(R.layout.slidingmenu); 

    getActionBar().setDisplayHomeAsUpEnabled(true); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public void onBackPressed() { 
    if (slidingMenu.isMenuShowing()) { 
     slidingMenu.toggle(); 
    } 
    else { 
     super.onBackPressed(); 
    } 
} 
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_MENU) { 
     this.slidingMenu.toggle(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     this.slidingMenu.toggle(); 
     return true; 

    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

} 활동의

XML :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/hello_world" /> 

</RelativeLayout> 

XML SliderMenu : ListView에의

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="@color/purple_dark" > 

    <ExpandableListView android:id="@+id/slidingmenu_view" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:transcriptMode="alwaysScroll"/> 

</LinearLayout> 

XML 항목 :

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/slidingmenu_list_selector_background"> 

    <ImageView 
     android:id="@+id/slidingmenu_sectionitem_icon" 
     android:layout_width="wrap_content" 
     android:layout_height="30dp" 
     android:layout_centerVertical="true" 
     android:paddingLeft="15dp"/> 

    <TextView 
     android:id="@+id/slidingmenu_sectionitem_label" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:layout_toRightOf="@id/slidingmenu_sectionitem_icon" 
     android:gravity="center_vertical" 
     android:text="TextView" 
     android:textColor="#FFFFFF"/> 

</RelativeLayout> 
+0

을 "SherlockFragmentActivity"를 확장 볼 수 있습니다 by' 부분 – keyser

+0

조각과 활동에 대한 XML 레이아웃에 코드를 게시하십시오. 전체 스택 추적을 게시하십시오. – Karakuri

+0

jfeinstein10 - SlidingMenu 라이브러리를 사용하는 경우. SlidingMenu에 잘못된 방식으로 접근하고 있습니다. MainActivity 클래스는 SlidingActivity 클래스를 확장해야합니다. 또한 MainActivity에서 Fragments를 실행하려면 SlidingActivity 대신 SlidingFragmentActivity를 확장해야합니다. – Arshu

답변

0

봅니다 클래스 SlidingMenuFragment을 변경 그래서 확장 SherlockFragment 당신이 SlidingMenu 클래스의 소스 코드를 보면 당신이 내가 당신의 오류 로그가`인한 포함 생각

+0

나는 이것을 시도하고 작동하지 않았다 ... – user2568768