Resimde görüldüğü gibi uzun basında seçici çekmek istiyorum. Bir öğeye uzun basıldığında, CAB menüsü etkinleştirilir. Ancak liste seçim göstergesi tıklandıktan sonra bir kez söner. Birden fazla seçim için CAB menüsü aktif olana kadar liste seçicilerinin aktif olmasını istiyorum. Çift musluk yaparsam ve renk değişmeli. Bu kod üzerine tıkladığımda bir titreme gibi çalışır. Herhangi biri benzer bir şeyle karşılaştı? Bu işlevi getirmek için bir hack var mı? Birden seçimleAndroid'de çalışmayan birden çok öğe için GridView öğe listesi seçici
Gridview: my OnCreate içinde
GridView setchoice: Bu iyi çalışıyor
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);
}
}});
aynı uygulamaya çalışıyorum MultiChoiceModeListener() sınıfı af içindeki kod CAB menüsü etkinleştirildi. Aynı kodu,
public void onItemCheckedStateChanged(ActionMode mode, int position,
long id, boolean checked) {
}
yönteminde kopyalayın. Ancak, görünüm grubundaki öğelere erişemiyorum. Ama GridView'a tamamen erişebiliyorum. Ama Grid'deki bireysel çocuk değil.
GridView'da her bir öğe bu düzen ile inşa edilmiştir<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>
:
<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>
: Burada
<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>
benim list_selector.xml İşte
benim GRIDVIEW düzenidirİşlevselliği nasıl sağlayabilirim? Buna takılıyorum. Seçicilerde çeşitli kombinasyonlar denedim. Ama hiçbir şey benim için çalışmıyor gibi görünüyor. Başka ayrıntı vermem gerekiyor mu?
Ama – intrepidkarthi
o çoklu seçmek için çalıştığını benim GRIDVIEW sadece listSelector öğeleri için çözüm gerekir? – intrepidkarthi
Evet. Başka bir kod gerekli değildi. 'CHOICE_MODE_MULTIPLE_MODAL' sizinki gibi. Ayrıca, android: choiceMode ve android: drawSelectorOnTop' özniteliklerini bıraktım. – dokkaebi