1

我一直在尝试在 android 中构建 Master-Detail 流程,但想将其中一个细节片段更改为不同的片段。由于这是我的第一个 Android 应用程序之一,我只是想在这个新片段上显示一张图片。为此,我构建了以下两个类

1)Fragment类(显示要显示的图片)

 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 作为当前应用程序的基础。

任何帮助,将不胜感激

谢谢

4

1 回答 1

6

这是因为您将android.app.Fragmentfrom new API 与android.support.v4.app.FragmentManagerfrom support library 结合使用,您应该将 PictureFragment from 中的 import 替换为android.app.Fragmenttoandroid.support.v4.app.Fragment以使其工作。

于 2013-07-22T16:10:39.223 回答