#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.