2013-03-20 1 views
1

У меня есть список во фрагменте, и я хочу, чтобы новый вид активности начинался, когда я нажимаю что-то в этом списке. Я только пытался с моим первым вариантом, но когда я пытаюсь это я получаю ошибку:ClassCastException: невозможно передать в android.app.Activity

03-20 15:16:13.017: E/AndroidRuntime(941): Caused by: java.lang.ClassCastException: com.test.test.Algebra cannot be cast to android.app.Activity 

Вот мой фрагмент класс:

public class FragmentTest extends SherlockListFragment { 

String formler[]= { 
     "Algebra", 
     "Aritmetik", 
     "Differential- och integralkalkyl", 
     "Funktioner", 
     "Geometri", 
     "Komplexa tal", 
     "Statistik och sannolikhet", 
     "Trigonometri" 
}; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    setListAdapter(new ArrayAdapter<String>(getActivity().getBaseContext(), android.R.layout.simple_list_item_1, formler)); 

    return super.onCreateView(inflater, container, savedInstanceState); 
} 

@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Auto-generated method stub 
    super.onListItemClick(l, v, position, id); 
    String choice = formler[position]; 
    try{ 
     @SuppressWarnings("rawtypes") 
     Class choiceClass = Class.forName("com.test.test." + choice); 
     Intent startIntent = new Intent(getActivity().getBaseContext(), choiceClass); 
     startActivity(startIntent); 
    }catch(ClassNotFoundException e){ 
     e.printStackTrace(); 
    } 
} 

}

Что я делаю неправильно?

+0

почему вы пытаетесь начать новую деятельность, как это? и просто измените имя класса в своем намерении и запустите его. нет необходимости использовать массив строк и делать такие вещи – hardartcore

+0

Показать свой код 'com.test.test.Algebra' please – Terry

+0

Кажется, что алгебра не является активностью ... Убедитесь, что ваш класс Algebra расширяет Activity..Also post Algebra класс – Pragnani

ответ

2

Убедитесь, что алгебра расширяет деятельность, а также вы можете просто начать деятельность как этот new Intent(currectActivity.this, Algebra.class);

+0

Когда я пытаюсь это сделать, я получаю Конструктор Intent (FragmentMatte, класс ) не определен – GooGleye

+0

Также причина в том, что это так, что он начинает активность того, что кликнул lististem. – GooGleye

0

Я никогда не использовал SherlockListFragment, но я использовал фрагмент. Когда я хотел, чтобы инициализировать новый фрагмент, я использовал

NewFragmentClass newFragment = new NewFragmentClass(); 
FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
transaction.replace(R.id.myCurrentFragmentId, newFragment); 
transaction.addToBackStack(null); 
// Commit the transaction 
transaction.commit(); 

Я надеюсь, что это поможет

+0

Я иду из Фрагмента в Активность, а не из другого фрагмента :) – GooGleye