Java (Viewpager适配器)getSupportFragmentManager()返回NULL
我想做滑动标签,我被卡住了: Main.javaJava (Viewpager适配器)getSupportFragmentManager()返回NULL,java,android,fragment,Java,Android,Fragment,我想做滑动标签,我被卡住了: Main.java import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.ActionBar.TabListener; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.app.Fragment; import androi
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.ActionBar.TabListener;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBarActivity;
import android.view.Window;
public class Main extends ActionBarActivity implements TabListener, android.support.v7.app.ActionBar.TabListener {
android.support.v7.app.ActionBar actionbar;
ViewPager viewpager;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.activity_main);
viewpager = (ViewPager)findViewById(R.id.pager);
viewpager.setAdapter(new FragmentAdapter(getSupportFragmentManager()));
actionbar = getSupportActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
android.support.v7.app.ActionBar.Tab tab_1 = actionbar.newTab();
android.support.v7.app.ActionBar.Tab tab_2 = actionbar.newTab();
tab_1.setText("Tab 1");
tab_2.setText("Tab 2");
tab_1.setTabListener(this);
tab_2.setTabListener(this);
actionbar.addTab(tab_1);
actionbar.addTab(tab_2);
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabReselected(android.support.v7.app.ActionBar.Tab arg0,
android.support.v4.app.FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(android.support.v7.app.ActionBar.Tab arg0,
android.support.v4.app.FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
@Override
public void onTabUnselected(android.support.v7.app.ActionBar.Tab arg0,
android.support.v4.app.FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
}
class FragmentAdapter extends FragmentPagerAdapter{
public FragmentAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
Fragment frag=null;
if(arg0 == 0)
{
frag = new TAB_1();
}
if(arg0 == 1)
{
frag = new TAB_2();
}
return null;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 2;
}
}
activity_main.xml
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_height = "match_parent"
android:layout_width="match_parent"
></android.support.v4.view.ViewPager>
提前谢谢 您
getItem
必须返回片段的实例,而不是null。将其更改为:
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
Fragment frag=null;
if (arg0 == 0) {
frag = new TAB_1();
} else if(arg0 == 1) {
frag = new TAB_2();
}
return frag;
}
您getItem
必须返回片段的实例,而不是null。将其更改为:
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
Fragment frag=null;
if (arg0 == 0) {
frag = new TAB_1();
} else if(arg0 == 1) {
frag = new TAB_2();
}
return frag;
}
@Blackbelt是绝对正确的…因为您从getItem方法返回null…您需要从它返回片段的引用
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
Fragment frag=null;
if (arg0 == 0) {
frag = new TAB_1();
} else if(arg0 == 1) {
frag = new TAB_2();
}
return frag;
}
[
按照此链接获取有关您试图实现的目标的更多信息。@Blackbelt绝对正确…因为您从getItem方法返回null…您需要从它返回片段的引用
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
Fragment frag=null;
if (arg0 == 0) {
frag = new TAB_1();
} else if(arg0 == 1) {
frag = new TAB_2();
}
return frag;
}
[
按照此链接获取有关您试图实现的目标的更多信息。只有在使用appcompat-v7-support库并扩展AppCompatActivity时,更改为getFragmentManager()getSupportFragmentManager()才有效仅当您使用appcompat-v7-support库并扩展AppCompatActivity时才有效。更改为getFragmentManager()getSupportFragmentManager()仅当您使用appcompat-v7-support库并扩展AppCompatActivity时才有效。