簡體   English   中英

片段交易未將我的片段識別為片段

[英]Fragment Transaction not recognizing my fragment as a fragment

所以我正在實現FragmentActivity並試圖添加一個片段,但是我遇到了多個問題。 我之前已經做過,實際上正在使用與上一個項目相同的代碼(它在其中工作),但是由於某種原因,它在這里不起作用。 這是我的代碼:

package silversphere.eyeon;

import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.LinearLayout;

public class AlarmsActivity extends FragmentActivity {



    @Override
    public void onCreate(Bundle savedInstanceState)
    {
         super.onCreate(savedInstanceState);

         LinearLayout layout = new LinearLayout(this);
         layout.setId(40000);

         FragmentManager man = getFragmentManager();
         FragmentTransaction trans = man.beginTransaction();

         Alarm_Landing_Page_Fragment frag = new Alarm_Landing_Page_Fragment();

         trans.add(40000, frag);

    }

}

我在layout.setId()調用以及trans.add()上遇到錯誤。 layout.setId()表示“類型為ID的預期資源”,而事務處理則表示“無法解析方法add(int,silversphere.eyeon.alarm_landing_page_fragment)”,這對我來說表明由於某種原因它無法將Alarm_LandingPage_Fragment識別為片段,但絕對應該。 這是Alarm_Landing_Page_Fragment的聲明:

public class Alarm_Landing_Page_Fragment extends Fragment {

任何建議表示贊賞!

您正在將支持庫中與Fragment相關的類與SDK附帶的類混合在一起。 使用Fragments時,請僅使用支持庫類或SDK的內置類(我的意思是僅與Fragment相關的類)。

如果您的類Alarm_Landing_Page_Fragment從支持庫擴展了Fragment ,則更改:

import android.app.FragmentManager;
import android.app.FragmentTransaction;

// ...

FragmentManager man = getFragmentManager();

至:

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;

// ...

FragmentManager man = getSupportFragmentManager();

否則,請勿擴展FragmentActivity並僅使用SDK中與Fragment相關的類。

編輯:

另請參見以下答案: 錯誤誇大類片段(作為ListFragment)

問題與setId 您必須創建一個<id>資源:

/res/values/ids.xml

<resources>
    <item type="id" name="myId" />
</resources>

然后,在您的文件上:

LinearLayout layout = new LinearLayout(this);
layout.setId(R.id.myId);

...

trans.add(R.id.myId, frag);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM