我正在使用Android Studio 1.0 Rc1。
我创建了一个MainActivity(TabbedActivity):
public class MainActivity extends ActionBarActivity implements ActionBar.TabListener
导入:
...
import android.support.v4.app.Fragment;
...
所以继承问题: 我做了另一个FragmentActivity:
public class BlankFragment extends Fragment {
这是关于进口的:
现在我想这样做:
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class below).
switch (position){
case 0:
return ScoutLogFragment.newInstance("a","b");
case 1:
return BlankFragment.newInstance("a", "b");
case 2:
return PlaceholderFragment.newInstance(position + 1);
default:
return PlaceholderFragment.newInstance(position + 1);
}
}
但它告诉我:
“必填:导入android.support.v4.app.Fragment; 找到:de.example.local.scouttools.BlankFragment“
如果我将主要活动导入更改为android.app.Fragment; t告诉我,我的getItem(int位置)的返回类型是错误的。
我不明白为什么要导入android.app.Fragment和其他android.support.app.v4.Fragment, 如何解决?
答案 0 :(得分:2)
它总是取决于哪些设备运行您的碎片。
支持V4与支持库一起使用。
可以使用
在build.gradle中导入它compile 'com.android.support:support-v4:21.0.0'
如果您不使用支持库,则只有使用Android 3.0或更高版本的设备才能使用您的片段。
如果您使用支持库,则所有至少2.1的设备都可以使用您的碎片。
注意:如果您使用支持库,那么您的应用程序在文件大小方面会有点大。
确保为支持库导入正确的Fragment类。它是
import android.support.v4.app.Fragment;
如果您要操作ActionBar,您还需要支持库v7。
导入
import android.support.v7.app.ActionBarActivity;
可以通过gradle使用
导入必需的库compile 'com.android.support:appcompat-v7:21.0.0'
哦,你的BlankFragment似乎导入了错误的类。验证它是否也使用BlankFragment类中的v4片段。