2013-07-09 6 views
6

私は1つのアクティビティにイメージのグリッドビューを持ち、フルスクリーンでイメージを含む各イメージに対して1つのフラグメントを実装しています。グリッド内の画像をクリックすると、対応するフラグメントが開きます。しかし、これを行う意図はありません。 は、ここに私のコード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); 
      } 

で、フラグメントは、このフラグメントは、活動ImagesSwipeにバインドされている

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); 
    } 
} 

です。だから私はどのようにグリッドビューアイテムとその対応するフラグメント間の移行を達成するのですか? ありがとう

+1

なぜ各画像の断片? – techiServices

+1

私はスワイプタブナビゲーションを使用しているので、各タブを画像として保持しています –

+0

アプリは画面サイズなどに基づいてアプリケーションがどのように動作するかによって、これに対する多くの解決策を考えることができます。 'Fragment' ? – techiServices

答えて

5

あなたは一つの画像のための一つの断片を必要としません。 1つのFragmentをImageViewで再利用するだけで、すべてのImageに対してそのレイアウトが再利用されます。

フラグメンテーションは、アクティビティからインテントのように呼び出されません。彼らはアクティビティの一部として存在するだけで、それは彼らのために設計されたものです。アクティビティの再利用可能なUIモジュールとして考えることができます。アクティビティにフラグメントを追加するには、FragmentManagerクラスとFragmentTransactionクラスを使用する必要があります。これらのクラスは、Fragmentsとのすべての相互作用を提供します。

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

はGridViewsについての基本的な事柄を説明しているGoogleドキュメントから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はフラグメントのタグです。私がダイアログとして残した方が良いかもしれない。 –

関連する問題