2013-09-04 5 views
0

Опознавание ошибки, которая говорит My ListFragment Невозможно отличить от android.app.Activity. Это приложение для планшета с раскладкой из двух панелей, и это левая сторона. Повреждение не подсказывает почему. Любая помощь была бы потрясающей.ListFragment Невозможно отличить от android.app.Activity

Код:

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentTransaction; 
import android.support.v4.app.ListFragment; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
public class MainActivityTab extends ListFragment { 

FragmentManager fm; 
FragmentTransaction ft; 
Fragment myFragment; 


@Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    String[] values = new String[] { "Player", "", "About This", 
     "The Science", "Information", "Instructions", "PDF"}; 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), 
     android.R.layout.simple_list_item_1, values); 
    setListAdapter(adapter); 

    FragmentManager fm = getActivity().getSupportFragmentManager(); 
    FragmentTransaction ft = fm.beginTransaction(); 

    if (savedInstanceState == null){ 
     Fragment_11 myFragment = new Fragment_11(); 
     ft.add(R.id.content_layout, myFragment); 
     ft.commit(); }} 


@Override 
public void onListItemClick(ListView l, View v, int position, long id){ 
Fragment newFragment = null; 
FragmentManager fm = getActivity().getSupportFragmentManager(); 
switch(position){ 
case 0: 
    newFragment = new Fragment_11(); 
    break; 
case 1: 
    newFragment = new Fragment_2(); 
    break; 
case 2: 
    newFragment = new Fragment_3(); 
    break; 
case 3: 
    newFragment = new Fragment_4(); 
    break; 
case 4: 
    newFragment = new Fragment_5(); 
    break; 
case 5: 
    newFragment = new Fragment_6(); 
    break; 

} 
FragmentTransaction ft = fm.beginTransaction(); 
ft.replace(R.id.content_layout, newFragment); 
ft.addToBackStack(null) 
.commit(); 
} 

} 

Ошибка:

09-04 12:07:24.897: E/AndroidRuntime(32209): FATAL EXCEPTION: main 
09-04 12:07:24.897: E/AndroidRuntime(32209): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.appexample.sseconds/com.appexample.sseconds.MainActivityTab}: java.lang.ClassCastException: com.appexample.sseconds.MainActivityTab cannot be cast to android.app.Activity 
09-04 12:07:24.897: E/AndroidRuntime(32209): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137) 
09-04 12:07:24.897: E/AndroidRuntime(32209): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
09-04 12:07:24.897: E/AndroidRuntime(32209): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
09-04 12:07:24.897: E/AndroidRuntime(32209): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
09-04 12:07:24.897: E/AndroidRuntime(32209): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-04 12:07:24.897: E/AndroidRuntime(32209): at android.os.Looper.loop(Looper.java:137) 
09-04 12:07:24.897: E/AndroidRuntime(32209): at android.app.ActivityThread.main(ActivityThread.java:5103) 
09-04 12:07:24.897: E/AndroidRuntime(32209): at java.lang.reflect.Method.invokeNative(Native Method) 
09-04 12:07:24.897: E/AndroidRuntime(32209): at java.lang.reflect.Method.invoke(Method.java:525) 
09-04 12:07:24.897: E/AndroidRuntime(32209): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
09-04 12:07:24.897: E/AndroidRuntime(32209): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
09-04 12:07:24.897: E/AndroidRuntime(32209): at dalvik.system.NativeStart.main(Native Method) 
09-04 12:07:24.897: E/AndroidRuntime(32209): Caused by: java.lang.ClassCastException: com.appexample.sseconds.MainActivityTab cannot be cast to android.app.Activity 
09-04 12:07:24.897: E/AndroidRuntime(32209): at android.app.Instrumentation.newActivity(Instrumentation.java:1061) 
09-04 12:07:24.897: E/AndroidRuntime(32209): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128) 
09-04 12:07:24.897: E/AndroidRuntime(32209): ... 11 more 
+0

вы можете вставить журнал ошибок? –

+0

Вы, кажется, используете поддержку libs, проверяете, если вы смешиваете поддержку и обычные библиотеки. – Atrix1987

+0

Все они выглядят нормально – user2407147

ответ

1

Не знаю, где аварии, но вы делаете все в неправильном порядке. Это всегда плохая практика, чтобы начать FragmentTransaction по активности внутри кода фрагмента. Выполняет все операции с транзакциями в классе Activity. Если вам нужно OnListItemClick события - вы можете сделать

((MyActivity) getActivity()).onListItemClick() 

доставить событие.

Смежные вопросы