Android 如何以新的意图打开片段类?

Android 如何以新的意图打开片段类?,android,android-fragments,Android,Android Fragments,如何以新的意图打开片段类?我知道片段不能被活动打开。我该如何解决这个问题?我想知道如何将片段类放入活动中。 我有一个gridView。我希望它在单击其中的项时打开我的片段类 我的代码 package com.fortuna.cinemalk; import java.util.ArrayList; import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android

如何以新的意图打开片段类?我知道片段不能被活动打开。我该如何解决这个问题?我想知道如何将片段类放入活动中。 我有一个gridView。我希望它在单击其中的项时打开我的片段类

我的代码

package com.fortuna.cinemalk;

import java.util.ArrayList;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import android.content.Intent;
import android.widget.AdapterView;


import com.fortuna.cinemalk.adapter.LazyAdapter;
import com.fortuna.cinemalk.model.BaseElement;
import com.fortuna.cinemalk.service.CommonVariable;
import com.fortuna.cinemalk.service.JSONServices;
import com.fortuna.cinemalk.util.Element;

public class TheaterFragment extends Fragment {

    private GridView gridView;

    private ArrayList<BaseElement> filmTheater;
    private LazyAdapter adapter;
    private Activity activity;
    private CommonVariable commonVariable;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.theater_fragment, container,
                false);

        activity = this.getActivity();

        commonVariable = (CommonVariable) activity.getApplication();

        gridView = (GridView) view.findViewById(R.id.gridView1);


        gridView.setOnItemClickListener(new  AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                Intent i = new Intent(TheaterFragment .this.getActivity(),MovieDetailFragment.class);
                startActivity(i);
            } 

        });

            new BackGround().execute();

        return view;
    } 




    public class BackGround extends AsyncTask<Void, Void, Void> {

        @Override
        protected Void doInBackground(Void... params) {

            filmTheater = JSONServices.getTheater();
            return null;
        }

        @Override
        /* check again */
        protected void onPostExecute(Void result) {

            commonVariable.setTheater(filmTheater);

            adapter = new LazyAdapter(filmTheater, activity,
                    Element.THEATER_LIST.getType());

            gridView.setAdapter(adapter);

            super.onPostExecute(result);
        }

        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
        }

    }







} 
package com.fortuna.cinemalk;
导入java.util.ArrayList;
导入android.app.Activity;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.support.v4.app.Fragment;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.GridView;
导入android.content.Intent;
导入android.widget.AdapterView;
导入com.fortuna.cinemalk.adapter.LazyAdapter;
导入com.fortuna.cinemalk.model.BaseElement;
导入com.fortuna.cinemalk.service.CommonVariable;
导入com.fortuna.cinemalk.service.JSONServices;
导入com.fortuna.cinemalk.util.Element;
公共类剧院片段扩展片段{
私有GridView GridView;
私人ArrayList电影院;
专用懒散适配器;
私人活动;
私有公共变量公共变量;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图=充气机。充气(R.布局。战区碎片,容器,
假);
activity=this.getActivity();
commonVariable=(commonVariable)activity.getApplication();
gridView=(gridView)view.findViewById(R.id.gridView1);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
Intent i=新的Intent(TheaterFragment.this.getActivity(),MovieDetailFragment.class);
星触觉(i);
} 
});
新建背景().execute();
返回视图;
} 
公共类后台任务{
@凌驾
受保护的Void doInBackground(Void…参数){
filmTheater=JSONServices.getTheater();
返回null;
}
@凌驾
/*再次检查*/
受保护的void onPostExecute(void结果){
公共变量。设置剧场(电影院);
适配器=新的LazyAdapter(电影院、活动、,
Element.THEATER_LIST.getType());
setAdapter(适配器);
super.onPostExecute(结果);
}
@凌驾
受保护的void onPreExecute(){
//TODO自动生成的方法存根
super.onPreExecute();
}
}
} 

片段不是通过意图调用的,而是通过FragmentManager调用的。签出。

您必须使用FragmentManager

    android.support.v4.app.Fragment detail = new DetailFragment();
    android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
    fragmentManager.beginTransaction().replace(R.id.content_frame, detail).commit();

您无法通过intent打开片段您将需要fragmenttransaction或FragmentManager我如何在单击gridview的项目时更改片段?发布代码的基本部分比只提供链接要好:)