2012-07-11 78 views
4

這是我的代碼。我得到new MainFragment();下一條紅線與錯誤Type mismatch: cannot convert from WishlistFragment to Fragment爲什麼我不能在Android上實例化這個片段?

Fragment newfragment = new MainFragment(); 

這裏是我的MainFragment.java文件看起來像:

public class MainFragment extends Fragment { 
    public MainFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 
     return inflater.inflate(R.layout.fragment_main, container, false); 
    } 
} 

上爲什麼發生這種情況的任何集成開發環境?我有一種感覺,這是一個愚蠢的,我正在看,我只是從一個漫長的一天,現在只是代碼盲目。

+0

首先,Eclipse告訴你具體是什麼問題?只是「紅線」不是非常的信息。其次,要麼刪除你的構造函數(因爲它沒有做任何事)或者至少鏈接到超類(所以'Fragment'的構造函數可以完成它的工作)。 – CommonsWare 2012-07-11 00:01:43

+0

編輯的主要問題....錯誤是:「類型不匹配:無法從WishlistFragment轉換爲片段」 – 2012-07-11 00:03:55

+0

包括在你的代碼中的默認構造函數是不必要的...只是刪除它:) – 2012-07-11 00:13:33

回答

21

確保這兩個地方都導入相同的Fragment類。感覺有點像您在導入android.app.Fragment(原生API級別11版本的碎片)的地方以及您要導入android.support.v4.app.Fragment(Android支持包中的碎片)的其他地方。

+0

剛發佈時就已經明白了這一點。謝謝! – 2012-07-11 00:12:48

+0

嗨,只是想說謝謝。這個答案爲我節省了很多頭痛! – 2015-08-03 12:10:15

8

想通了這個問題....我MainActivity.java文件是使用:

import android.support.v4.app.Fragment; 

和我MainFragment.java文件是使用:

import android.app.Fragment; 

因此就出現了不匹配。我使用ICS 4.0及更高版本作爲我的最低API版本。改變一切以導入到v4 API解決了我的問題。

+0

我也在做同樣的錯誤 – nida 2013-11-26 13:07:04

相關問題