碎片不兼容的类型

Gar*_*eld 8 java android android-fragments

Activity继承ActoinBarActivity,它NavigationDrawer通过点击其元素打开片段来描述sidebar().在其中一个片段中listView,通过单击我想要打开另一个片段的项目(员工 - 员工列表 - 员工数据).但我是一个错误

不兼容的类型:必需:Android.app.Fragment找到:com.abc.app.EmployeeDetails

public class MyEmployeeFragment extends Fragment {
//some code
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
    userList = new ArrayList<User>();
    sAdapter = new CustomAdapter(getActivity(),userList);
    View rootView = inflater.inflate(R.layout.my_employe, container, false);
    ListView lv = (ListView)rootView.findViewById(R.id.list);
    lv.setAdapter(sAdapter);

    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
            Fragment f = new EmployeeDetails(); // ERROR
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction ft = fragmentManager.beginTransaction();
            ft.replace(R.id.content_frame, f);
            ft.commit();
            Log.i("TAG", "itemClick: position = " + position + ", id = "
            + id);
        }
    });
Run Code Online (Sandbox Code Playgroud)

EmployeeDetails

public class EmployeeDetails extends Fragment {



    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_employee_details, container, false);
    }


}
Run Code Online (Sandbox Code Playgroud)

答案是:

所有碎片都import android.app.Fragment;不能android.support.v4.app.Fragment;

Luc*_*tos 19

在您的类EmployeeDetails声明中,执行以下操作:

public class EmployeeDetails extends Fragment {
......
Run Code Online (Sandbox Code Playgroud)

并使用 import android.app.Fragment;

不使用 import android.support.v4.app.Fragment;