2012-08-13 22 views
6

मुझे 2 दिनों से एक समस्या का सामना करना पड़ रहा है। मेरे पास ग्रिड व्यू है कि मुझे छवियों को प्रदर्शित करने की आवश्यकता है। जब मैं ग्रिड आइटम पर क्लिक करता हूं तो उसे अगली गतिविधि पर जाना पड़ता है। मैं सक्षम हूं ग्रिडव्यू में छवियां प्रदर्शित करें लेकिन बात यह है कि जब मैं उस आइटम पर क्लिक करता हूं तो यह प्रतिक्रिया नहीं दे रहा है .. (OnItemClickListener काम नहीं कर रहा है)। मैं अपनी समस्या का पता लगाने में सक्षम नहीं था जहां मैंने गलत किया है।GridView.setOnItemClickListener काम नहीं कर रहा है

  package com.logictreeit.mobilezop.fragments; 

    import android.app.Activity; 
    import android.content.Context; 
    import android.os.Bundle; 
    import android.support.v4.app.Fragment; 
    import android.util.Log; 
    import android.view.LayoutInflater; 
    import android.view.View; 
    import android.view.ViewGroup; 
    import android.widget.AdapterView; 
    import android.widget.AdapterView.OnItemClickListener; 
    import android.widget.GridView; 

    import com.logictreeit.mobilezop.adapters.PhotoAdapter; 
    import com.logictreeit.mobilezop.custom.Utils; 

     public class Dup_AlbumPhotosFragment extends Fragment implements 
       OnItemClickListener { 

private static final String TAG = "AlbumPhotos Fragment"; 
private GridView gridView; 
private Context mContext; 
private PhotoAdapter photoAdapter; 

public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    Log.v(TAG, "on Activity Created "); 

} 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
} 

public void onAttach(Activity activity) { 
    super.onAttach(activity); 
    this.mContext = activity; 
} 

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    Log.v(TAG, "OnCreateView"); 
    gridView = new GridView(mContext); 
    gridView.setNumColumns(GridView.AUTO_FIT); 
    gridView.setClickable(true); 
    gridView.setOnItemClickListener(this); 
    photoAdapter = new PhotoAdapter(mContext,     -1,Utils.getALbumList().get(0).getPhotosList()); 
    gridView.setAdapter(photoAdapter); 
    return gridView; 
} 

@Override 
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
    Log.v(TAG, "on ItemClikced"); 

} 

     } 

यह मेरा टुकड़ा है ..

  package com.logictreeit.mobilezop.adapters; 

     import java.util.List; 

     import android.content.Context; 
     import android.view.LayoutInflater; 
     import android.view.View; 
     import android.view.ViewGroup; 
     import android.widget.ArrayAdapter; 
     import android.widget.CheckBox; 
     import android.widget.CompoundButton; 
     import android.widget.CompoundButton.OnCheckedChangeListener; 
     import android.widget.ImageView; 

     import com.logictreeit.mobilezop.R; 
     import com.logictreeit.mobilezop.models.Photo; 

      public class DupPhotoAdapter extends ArrayAdapter<Photo> { 
      private static final String TAG = "PhotoAdapter"; 
      private Context context; 
private List<Photo> photoList; 

public DupPhotoAdapter(Context context, int textViewResourceId, 
     List<Photo> objects) { 
    super(context, textViewResourceId, objects); 
    this.context = context; 
    this.photoList = objects; 
} 

public int getCount() { 
    return photoList.size(); 
} 

public View getView(int position, View convertView, ViewGroup parent) { 
    convertView = LayoutInflater.from(context).inflate(
      R.layout.grid_item_image_layout, null); 

    ImageView imageView = (ImageView) convertView 
      .findViewById(R.id.grid_item_imageview); 
    final CheckBox checkBox = (CheckBox) convertView 
      .findViewById(R.id.grid_item_checkbox); 
    final Photo photo = photoList.get(position); 

    if (photo.isSelected()) { 
     checkBox.setChecked(true); 
    } else { 
     checkBox.setChecked(false); 
    } 
    imageView.setImageResource(Integer.parseInt(photo.getFileUrl())); 
    checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
     public void onCheckedChanged(CompoundButton buttonView, 
       boolean isChecked) { 
      if (isChecked) { 
       photo.setSelected(true); 
      } else { 
       photo.setSelected(false); 
      } 

     } 
    }); 
    return convertView; 

} 

    } 

यह मेरा एडाप्टर है।

तुम लोगों know.Can यू कृपया मुझे बताओ ...

धन्यवाद करते हैं, तो चैतन्य

उत्तर

24

मैं अपने ImageViews चोरी फोकस क्योंकि वे चेक करने योग्य हैं लगता है। इसलिए आइटम क्लिक नहीं होता है क्योंकि आपकी छवि दृश्य इसे रोकती है।

इन विशेषताओं को अपनी छविदृश्य में जोड़ना मदद कर सकता है लेकिन शायद आपकी जांच में परेशानी हो सकती है।

android:focusable="false" 
    android:focusableInTouchMode="false" 

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

http://windrealm.org/tutorials/android/listview-with-checkboxes-without-listactivity.php

+3

धन्यवाद आप Konstantin..Thank तो much..It दोनों imageView और फिर चेकबॉक्स के लिए me..Added के लिए उन रंगमंच की सामग्री काम अपने आइटम के लिए फेंक नहीं किया जाएगा केवल यह काम कर रहा है । – Chaitu

+0

मुझे इसके बारे में खुशी है! :) – Ostkontentitan

+0

मैंने प्रोग्रामर रूप से रैखिक लेआउट में छवि दृश्य और चेकबॉक्स जोड़ा है। तो मैं जावा कोड के माध्यम से उपरोक्त 2 लाइनों कर रहा हूँ। लेकिन, फिर भी मैं कोई क्लिक आइटम प्राप्त करने में सक्षम नहीं हूं। – Namratha

1

आशा इस gridview में, किसी की मदद कर सकते , यदि आप जोड़ें:

यहाँ 1 ट्यूटोरियल उपयुक्त लगता है कि, मैं मानता मैं फ्लॉप उस पर करीब से देख फेंक दिया लेकिन करने के लिए आप चाहते हो सकता है है बटन या सेट करें "एंड्रॉइड: क्लिक करने योग्य = सत्य" इसके अंदर तत्व में, ग्रिडव्यू के ऑनइटम क्लाइकलिस्ट को नहीं सुनाया जाएगा, इसके बजाय आप छवि के साथ एक छवि या टेक्स्ट व्यू बना सकते हैं और देख सकते हैं कि आपने क्लिक करने योग्य = "सत्य" सेट नहीं किया है। अब, OnItemClickListener TextView को सुनेंगे और यह मेरे लिए काम करता है।

2

इसके अलावा यह सुनिश्चित कर लें, जो आपके एडाप्टर IsEnabled

@Override 
    public boolean isEnabled(int i) { 
    return true; 
} 

http://developer.android.com/reference/android/widget/BaseAdapter.html#isEnabled(int)

IsEnabled (पूर्णांक स्थिति) के लिए सच रिटर्न वास्तविक लौटता है यदि निर्दिष्ट स्थिति में आइटम एक विभाजक नहीं है।

अन्यथा क्लिक करें घटना,

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