2013-07-09 13 views
6

मैं एक ऐप को कार्यान्वित कर रहा हूं जिसमें एक गतिविधि में छवियों का ग्रिडव्यू है और प्रत्येक छवि के लिए एक टुकड़ा है जिसमें पूर्ण स्क्रीन में छवि शामिल है। जब मैं ग्रिड में किसी भी छवि पर क्लिक करता हूं, तो उसे इसी खंड को खोलना चाहिए। हालांकि, हम ऐसा करने के इरादे का उपयोग नहीं कर सकते हैं। यहाँ मेरी कोडएक गतिविधि से एक टुकड़ा खोलने के इरादे से एंड्रॉइड

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

के रूप में रखा है, इस पर निर्भर करता है कि ऐप को स्क्रीन आकार आदि के आधार पर कैसे कार्य करना चाहिए, इस पर निर्भर करता है कि 'ग्रिड व्यू' लोड 'फ्रैगमेंट' ? – techiServices

उत्तर

5

आप एक छवि के लिए एक टुकड़ा की जरूरत नहीं है। प्रत्येक छवि के लिए इसके लेआउट में एक छवि दृश्य के साथ बस एक टुकड़ा का पुन: उपयोग करें।

फ्रैगमेंट्स को किसी इरादे से क्रियाकलापों की तरह नहीं बुलाया जाता है। वे केवल एक गतिविधि के हिस्से के रूप में मौजूद हो सकते हैं, यही वह है जिसे वे डिजाइन किए गए हैं। एक गतिविधि के लिए एक पुन: प्रयोज्य यूआई-मॉडुल के रूप में उनके बारे में सोचें। किसी गतिविधि में एक टुकड़ा जोड़ने के लिए आपको FragmentManager और FragmentTransaction कक्षाओं का उपयोग करना होगा, जो टुकड़ों के साथ सभी इंटरैक्शन प्रदान करते हैं।

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

गूगल डॉक्स जहां GridViews के बारे में बुनियादी बातें वर्णित हैं से this गाइड पर एक नज़र डालें। अतिरिक्त में आपको Fragments पढ़ना चाहिए। और यहां आपके दृष्टिकोण के बारे में Tutorial है।

1

आप डायलॉगफ्रामेंट, 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

क्यों 'डायलॉग फ्रैगमेंट'? – techiServices

+0

यहां, image_title क्या है? –

+0

image_title खंड के लिए टैग है। अगर मैं इसे संवाद के रूप में छोड़ देता तो बेहतर हो सकता है। –

संबंधित मुद्दे