Конструктор моего класса FragmentPagerAdapter не определяется в моей основной деятельности

#android #fragmentpageradapter #swipeview

#Android #fragmentpageradapter #просмотр прокрутки

Вопрос:

Я пытаюсь реализовать просмотр с помощью приложения Tabs, но мой адаптер выдает ошибку. Функция конструктора не определяется в моей основной деятельности. Я использовал функцию getSupportFragmentManager() в качестве аргумента, и все мои файлы являются файлами .support.v4.app.

Это код для моего адаптера. Пожалуйста, обратите внимание, что я еще не определил фрагменты.

 package com.example.tabpractice;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class TabsPagerAdapter extends FragmentPagerAdapter {

public TabsPagerAdapter(FragmentManager fm) {
    super(fm);
}

@Override
public Fragment getItem(int arg0) {
    switch (arg0) {
    case 0:        
        return new Fragment1();
    case 1:
        return new Fragment2();
    case 2:
        return new Fragment3();
    case 3:
        return new Fragment4();
        break;
    }
    return null;
}

@Override
public int getCount() {     
    return 4;
}

}
  

И это код для моей основной деятельности

 package com.example.tabpractice;

import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.ActionBar.TabListener;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;

public abstract class MainActivity extends FragmentActivity implements TabListener{

ViewPager vPager;
TabsPagerAdapter mAdapter;
ActionBar actionBar;
String[] tabs = {"Home","Income","Expense","Transactions"};

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

    vPager = (ViewPager) findViewById(R.id.pager);
    actionBar = getActionBar();
    mAdapter = TabsPagerAdapter(getSupportFragmentManager());
    vPager.setAdapter(null);
    actionBar.setHomeButtonEnabled(false);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    for(String tab_name : tabs){
        actionBar.addTab(actionBar.newTab().setText(tab_name)
                .setTabListener(this));
    }



}
  

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

1.Вы забыли создать экземпляр TabsPagerAdapter , вместо TabsPagerAdapter(...); того, чтобы пытаться использовать new TabsPagerAdapter(...); и почему вы не используете AppCompat v7 ActionBarActivity и не используете getSupportActionBar() вместо getActionBar() ?

2. @Wakim Спасибо! Я новичок в этом, и я забыл добавить новый! Что касается панели действий, я не совсем уверен в том, что вы предлагаете мне делать. Если бы вы могли опубликовать ссылку, это было бы полезно. Еще раз спасибо!

3. Взгляните на эту ссылку, в ней содержится ссылка на AppCompat v7 библиотеку, которая включает поддержку ActionBar для использования на Android ниже SDK 11. developer.android.com/guide/topics/ui/actionbar.html

Ответ №1:

Вы забыли создать экземпляр TabsPagerAdapter , вместо TabsPagerAdapter(...); того, чтобы пытаться использовать new TabsPagerAdapter(...);