Как я могу запустить fragmentactivity?

#java #android

#java #Android

Вопрос:

Для моего приложения я использую библиотеку ViewPager, чтобы пользователи могли перелистывать страницы. Я хотел бы использовать fragmentactivity или activity, чтобы я мог получить доступ к элементам макета с помощью findViewById. Но когда я пытаюсь запустить свое приложение, я получаю сообщение об ошибке:

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/com.example.ViewPagerActivity}: 

Caused by: java.lang.ClassCastException: com.example.testActivity
 

Я не могу привести к фрагменту… Итак, каково решение, чтобы сделать это правильно?

Главная:

 /**
 * The <code>ViewPagerFragmentActivity</code> class is the fragment activity hosting the ViewPager
 */
public class ViewPagerActivity extends FragmentActivity{
    /** maintains the pager adapter*/
    private PagerAdapter mPagerAdapter;
    /* (non-Javadoc)
     * @see android.support.v4.app.FragmentActivity#onCreate(android.os.Bundle)
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.setContentView(R.layout.main);
        //initialsie the pager
        this.initialisePaging();
    }

    /**
     * Initialise the fragments to be paged
     */
    private void initialisePaging() {

        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, testActivity.class.getName()));
        fragments.add(Fragment.instantiate(this, test2Activity.class.getName()));
        this.mPagerAdapter  = new PagerAdapter(super.getSupportFragmentManager(), fragments);


        ViewPager pager = (ViewPager)super.findViewById(R.id.viewpager);
        TitlePageIndicator indicator = (TitlePageIndicator) findViewById(R.id.indicator);
        pager.setAdapter(this.mPagerAdapter);
        indicator.setViewPager(pager);
    }
}
 

Тестовая активность:

 public class test extends FragmentActivity { //or activity?

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout);
  { 

}
 

Комментарии:

1. Здесь нет имен пакетов, но exmaple для ComponentInfo{com.lyrebirds/com.exmaple.ViewPagerActivity} меня это звучит как опечатка (может быть, вместо этого это должно быть «example»?) . Убедитесь, что у вас нет опечатки при попытке запустить действие.

Ответ №1:

Исключение RuntimeException сообщит вам, что пошло не так. Если вы используете Eclipse, он не покажет вам полную трассировку стека, но вы найдете ее в logcat.