2013-07-09 43 views
6

我正在實現一個應用程序,該應用程序在一個活動中具有圖像的網格視圖,並且在全屏中包含圖像的每個圖像都具有一個片段。當我點擊網格中的任何圖像時,它應該打開相應的片段。但是,我們不能使用意圖來做到這一點。 這裏是我的代碼Android使用意圖從活動中打開片段

public void onItemClick(AdapterView<?> arg0, View arg1, int position, 
       long arg3) { 
      // TODO Auto-generated method stub 
      if(position==0) 
      { 
       Intent i=new Intent(Gallery.this,ImageFrag1.class); 
       startActivity(i); 
      } 

和片段

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

public class ImageFrag1 extends Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.imagefrag1, container, false); 
    } 
} 

這個片段綁定到一個活動ImagesSwipe。那麼我該如何實現網格視圖項目及其相應片段之間的轉換。 謝謝

+1

爲什麼每個圖像的片段? – techiServices

+1

我正在使用滑動選項卡導航,所以我已經將每個選項卡保存爲圖像 –

+0

我可以想出很多解決方案,具體取決於應用程序應該如何根據屏幕大小等進行操作.GridView在'Fragment'中加載? – techiServices

回答

5

你並不需要一個圖像中的一個片段。只需在每個Image的佈局中重用一個ImageView的片段即可。

片段不會像活動一樣通過意圖被調用。它們只能作爲Activity的一部分存在,這就是它們的設計目的。把它們想象成一個活動的可重用UI模塊。要將片段添加到活動中,您必須使用FragmentManagerFragmentTransaction類,它們提供與片段的所有交互。

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    ft.add(YourFragment.newInstance(), null); 
    ft.commit(); 

看一看從谷歌文檔,其中約GridView的基本的東西描述this指南。除此之外,你應該閱讀約Fragments。這裏是關於你的方法的Tutorial

1

你可能想看看DialogFrament,here is an example

而不是使用意向的您使用FramentManager:

if(position==0) 
{ 
FragmentManager fm = getFragmentManager(); 
ImageFrag1 imageDialog = new ImageFrag1() 
ImageFrag1.show(fm, "image_title"); 
} 

而且你dialogFrament變爲:

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

public class ImageFrag1 extends DialogFragment { 

public ImageFrag1() { 
} 

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

爲什麼一個'DialogFragment'? – techiServices

+0

這裏,什麼是image_title? –

+0

image_title是片段的標籤。如果我把它當作對話,可能會更好。 –