में काम नहीं कर रहे कई आइटमों के लिए ग्रिड व्यू आइटम सूची चयनकर्ता चित्र में दिखाए गए अनुसार लंबे प्रेस पर चयनकर्ता को आकर्षित करना चाहते हैं। जब मैं एक आइटम पर लंबे समय तक दबाता हूं, तो सीएबी मेनू सक्रिय होता है। लेकिन सूची चयनकर्ता संकेतक क्लिक करने के बाद एक बार बंद हो जाता है। मैं चाहता हूं कि सूची चयनकर्ता सक्रिय होने के लिए सीएबी मेनू सक्रिय होने तक सक्रिय हो जाएं। और यदि मैं डबल टैप करता हूं तो रंग टॉगल करना चाहिए। यह कोड एक झिलमिलाहट के रूप में काम करता है जब मैं उस पर क्लिक करता हूं। किसी को भी इसी तरह का सामना करना पड़ा? क्या इस कार्यक्षमता को लाने के लिए कोई हैक है?एंड्रॉइड
कई चयन के साथ GridView: मेरे OnCreate में
GridView setchoice:
gridView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE_MODAL);
gridView.setMultiChoiceModeListener(new MultiChoiceModeListener());
यह ठीक काम कर रहा है:
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
ImageView iv = (ImageView) v
.findViewById(R.id.imageview2);
ViewGroup gridChild = (ViewGroup) gridView
.getChildAt(position);
ViewGroup gridGrandChild = (ViewGroup) gridChild
.getChildAt(0);
ViewGroup gridGreatGrandChild = (ViewGroup) gridGrandChild
.getChildAt(0);
int childSize = gridGreatGrandChild.getChildCount();
if (iv.getId() == gridGreatGrandChild.getChildAt(1)
.getId()) {
if (iv.getVisibility() == 4)
iv.setVisibility(View.VISIBLE);
else
iv.setVisibility(View.INVISIBLE);
}
}});
मैं एक ही लागू करने के लिए कोशिश कर रहा हूँ MultiChoiceModeListener() कक्षा af के अंदर कोड सीएबी मेनू सक्रिय है।
public void onItemCheckedStateChanged(ActionMode mode, int position,
long id, boolean checked) {
}
विधि के अंदर एक ही कोड की प्रतिलिपि बनाई गई। लेकिन मैं व्यू ग्रुप के अंदर तत्वों तक पहुंचने में असमर्थ हूं। लेकिन मैं पूरी तरह से ग्रिड व्यू तक पहुंचने में सक्षम हूं। लेकिन ग्रिड के अंदर व्यक्तिगत बच्चा नहीं।
यहाँ मेरी gridview लेआउट है:
<GridView
android:id="@+id/grid_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:columnWidth="190dp"
android:drawSelectorOnTop="true"
android:choiceMode="multipleChoice"
android:horizontalSpacing="3dp"
android:listSelector="@drawable/list_selector"
android:numColumns="auto_fit"
android:paddingRight="4dp"
android:stretchMode="spacingWidthUniform"
android:verticalSpacing="3dp" >
</GridView>
GridView में प्रत्येक आइटम इस लेआउट के साथ निर्माण किया है:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/gridviewlistselector" android:state_focused="true" android:state_pressed="false"/>
<item android:state_focused="true"><shape>
<solid android:color="#66000000" />
</shape></item>
<item android:state_selected="true"><shape>
<solid android:color="#66000000" />
</shape></item>
<item android:state_pressed="true"><shape>
<solid android:color="#66000000" />
</shape></item>
<item android:state_enabled="false" android:state_focused="true"><shape>
<solid android:color="#66000000" />
</shape></item>
</selector>
:
<FrameLayout
android:id="@+id/frameLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RelativeLayout
android:id="@+id/relativelayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ImageView>
<ImageView
android:id="@+id/imageview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageview"
android:layout_alignLeft="@+id/imageview"
android:layout_alignRight="@+id/imageview"
android:layout_alignTop="@+id/imageview"
android:visibility="invisible"
android:background="#76f9a49c"
>
</ImageView>
</RelativeLayout>
<ImageView
android:id="@+id/tagimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|right"
android:layout_marginRight="-4dp"
android:src="@drawable/tag"
android:visibility="invisible" />
<ImageView
android:id="@+id/countimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="8dp"
android:layout_marginRight="5dp"
android:src="@drawable/dealcount_overlay"
android:visibility="invisible" />
<TextView
android:id="@+id/count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="11dp"
android:layout_marginRight="24dp"
android:text="100"
android:textColor="#fff"
android:visibility="invisible" >
</TextView>
<ProgressBar
android:id="@+id/progressbar"
style="@android:style/Widget.ProgressBar.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:visibility="visible" />
</FrameLayout>
<TextView
android:id="@+id/textView_nodata"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_below="@+id/frameLayout1"
android:layout_centerHorizontal="true"
android:text="No data available. Try different query!"
android:textAppearance="?android:attr/textAppearanceLarge"
android:visibility="gone" />
</RelativeLayout>
यहाँ मेरी list_selector.xml है
मैं कार्यक्षमता कैसे प्राप्त कर सकता हूं? मैं इस पर अटक गया हूँ। मैंने चयनकर्ताओं पर विभिन्न संयोजनों की कोशिश की। लेकिन मेरे लिए कुछ भी काम नहीं कर रहा है। क्या मुझे कोई अन्य विवरण प्रदान करने की ज़रूरत है?
लेकिन मैं अपने gridview में केवल listSelector मदों के लिए समाधान की जरूरत है – intrepidkarthi
यह बहु चयन के लिए काम कर रहा है? – intrepidkarthi
हां। कोई अन्य कोड की आवश्यकता नहीं थी। आपके जैसे CHOICE_MODE_MULTIPLE_MODAL'। साथ ही, मैंने गुण 'एंड्रॉइड: पसंद मोड' और 'एंड्रॉइड: ड्रा सिलेक्टरऑनटॉप' को छोड़ दिया। – dokkaebi