2013-07-22 143 views
1

我一直在嘗試在android中構建主 - 細節f low,但想要將其中一個細節片段更改爲不同的片段。因爲這是我的第一個Android應用程序之一,所以我只是試圖在這個新的片段上出現一張圖片。對於這一點,我建立以下兩類添加擴展片段到活動

1)片段類(顯示要顯示的圖像)

package com.userName.miscapp; 

import com.userName.miscapp.dummy.DummyContent; 

import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class PictureFragment extends Fragment { 



    // Default Copy Constructor for the fragment 
    public PictureFragment() { 
    } 

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

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

} 

2)活性以顯示相同的

package com.userName.miscapp; 

import android.os.Bundle; 
import android.app.Activity; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentActivity; 
import android.view.Menu; 

public class SimplePicture extends FragmentActivity { 

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

     getActionBar().setDisplayHomeAsUpEnabled(true); 


     if (savedInstanceState == null) { 
      // Create the detail fragment and add it to the activity 
      // using a fragment transaction. 
      Bundle arguments = new Bundle(); 
      arguments.putString(ItemDetailFragment.ARG_ITEM_ID, 
        getIntent().getStringExtra(ItemDetailFragment.ARG_ITEM_ID)); 
      PictureFragment frag = new PictureFragment(); 
      frag.setArguments(arguments); 
      android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); 
      android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
      fragmentTransaction.add(R.id.simple_picture_container,frag).commit(); 
      //setContentView(R.layout.activity_simple_picture); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.simple_picture, menu); 
     return true; 
    } 

} 

在編譯時,它無法識別PictureFragment是Fragment類的擴展。儘管它明確寫在第一個文件中。在Stackoverflow上搜索解決方案時表示要擴展FragmentActivity而不是Activity,並試圖使用getSupportFragmentManager(),這兩者都沒有幫助。 PS:使用11作爲當前應用程序的基礎。

任何幫助,將不勝感激

感謝

回答

6

這是因爲你使用android.app.Fragment從結合新的API與android.support.v4.app.FragmentManager從支持庫,你應該在你的PictureFragment替代進口從android.app.Fragmentandroid.support.v4.app.Fragment使它工作。

+0

有完全一樣的錯誤,沒有注意到進口:-) –

相關問題