Android 无法将局部变量fm解析为类型
在我的应用程序中,我正在创建使用片段和页面适配器的选项卡。在我的TabsViewPagerFragmentActivity类中,我得到一个错误:Android 无法将局部变量fm解析为类型,android,Android,在我的应用程序中,我正在创建使用片段和页面适配器的选项卡。在我的TabsViewPagerFragmentActivity类中,我得到一个错误: fm cannot be resolved to a variable TabsViewPagerFragmentActivity.java /LoginAndRegistration/src/com/example/loginandregistration line 47 Java Problem 当我遵循快速修复选项时,我选择创建一个局部变量
fm cannot be resolved to a variable TabsViewPagerFragmentActivity.java /LoginAndRegistration/src/com/example/loginandregistration line 47 Java Problem
当我遵循快速修复选项时,我选择创建一个局部变量,然后它告诉我初始化fm(顺便说一下,fm代表FragmentManager),但随后它将其设置为null
我在我的PageAdapter中定义了fm:
public class MyPageAdapter extends FragmentPagerAdapter {
// Declare the number of ViewPager pages
final int PAGE_COUNT = 3;
public MyPageAdapter(FragmentManager fm) {
super(fm);
}
所以我的问题是:
我应该遵循快速解决方案吗?如果是,我应该将null值更改为什么?或者我应该在PageAdapter类中更改某些内容?以下是选项卡sviewPagerFragmentActivity.java:
package com.example.loginandregistration;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.content.LocalBroadcastManager;
import com.example.loginandregistration.MyPageAdapter;
public class TabsViewPagerFragmentActivity extends FragmentActivity {
// Declare Variables
ActionBar mActionBar;
ViewPager mPager;
Tab tab;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from dashboard.xml
setContentView(R.layout.dashboard);
// Activate Navigation Mode Tabs
mActionBar = getActionBar();
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Locate ViewPager in activity_main.xml
mPager = (ViewPager) findViewById(R.id.pager);
// Capture ViewPager page swipes
ViewPager.SimpleOnPageChangeListener ViewPagerListener = new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
// Find the ViewPager Position
mActionBar.setSelectedNavigationItem(position);
}
};
mPager.setOnPageChangeListener(ViewPagerListener);
// Locate the adapter class called ViewPagerAdapter.java
MyPageAdapter viewpageradapter = new MyPageAdapter(fm);
// Set the View Pager Adapter into ViewPager
mPager.setAdapter(viewpageradapter);
// Capture tab button clicks
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// Pass the position on tab click to ViewPager
mPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
};
// Create first Tab
tab = mActionBar.newTab().setText("Tab1").setTabListener(tabListener);
mActionBar.addTab(tab);
// Create second Tab
tab = mActionBar.newTab().setText("Tab2").setTabListener(tabListener);
mActionBar.addTab(tab);
// Create third Tab
tab = mActionBar.newTab().setText("Tab3").setTabListener(tabListener);
mActionBar.addTab(tab);
}
}
从
活动
向适配器构造函数提供片段管理器:
如果使用支持库,请执行以下操作:
MyPageAdapter viewpageradapter = new MyPageAdapter(getSupportFragmentManager());
我现在得到的错误是“调用需要API级别11(当前最小值为8)”,如何修复此lint错误而不必将整个最小值更改为11?如果需要的话,这就是它们作为参考的地方。
ActionBar
可从API 11获得,因此在这里,使用支持库也是一样的:那么我会更改任何导入,还是做一些事情,例如添加抑制?当你说使用支持库时,你是说ActionBar包含在支持库中吗?(抱歉误解)是,从支持库导入所需内容。默认操作栏适用于API>10。如果您希望它在以前的API上工作,则需要在项目中添加支持库v4或v7。选中此项: