use*_*260 3 android android-fragments android-fragmentactivity
我正在编写我的第一个使用Android编程教程中使用片段的应用程序:Big Nerd Ranch Guide.
我创建了一个片段和相应的布局,现在我想将片段管理器添加到将使用它的父级.
我写了这个:
FragmentManager fm = getSupportFragmentManager();
Run Code Online (Sandbox Code Playgroud)
但android studio给了我这个错误:
Error:(19, 51) error: incompatible types
required: android.app.FragmentManager
found: android.support.v4.app.FragmentManager
Run Code Online (Sandbox Code Playgroud)
我不明白......我的印象是FragmentManager可以来自支持库,取决于你是否要支持pre-API 11版本.
改变了什么?
这些是我的进口:
import android.app.FragmentManager;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
Run Code Online (Sandbox Code Playgroud)
当我改变时:
import android.app.FragmentManager;
Run Code Online (Sandbox Code Playgroud)
至
import android.support.v4.app.FragmentManager;
Run Code Online (Sandbox Code Playgroud)
我在识别片段类时遇到错误;
这是相关代码:
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.fragmentContainer);
if (fragment == null){
fragment = new CrimeFragment();
fm.beginTransaction().add(R.id.fragmentContainer, fragment).commit();
}
Run Code Online (Sandbox Code Playgroud)
并且错误是突出显示行if(fragment == null){
并说:
unknown class: 'fragment'
Run Code Online (Sandbox Code Playgroud)
还有几个
unexpected token
Run Code Online (Sandbox Code Playgroud)
在if语句的每个括号上和a
unexpected identifier
Run Code Online (Sandbox Code Playgroud)
在双等于.
到底是怎么回事?
只需 import android.app.FragmentManager;改为import android.support.v4.app.FragmentManager;
对于编辑过的问题:检查代码的放置位置并仔细检查这些多个括号.通过将代码放在任何方法之外,我能够重现您的问题:
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.fragmentContainer);
if (fragment == null){
fragment = new CrimeFragment();
fm.beginTransaction().add(R.id.fragmentContainer, fragment).commit();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_profile_holder, container, false);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4550 次 |
| 最近记录: |