-1

私はStateListdrawablexmlに持っています

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_activated="false" android:drawable="@drawable/ic_checked_off" />
    <item android:state_activated="true" android:drawable="@drawable/ic_checked_on" />
    <item android:drawable="@drawable/ic_checked_on" android:state_pressed="true" />
    <item android:drawable="@drawable/ic_checked_off" />

</selector>

を持つGridView 画像がありStateListDrawable、プログラムで描画可能な状態を変更しようとします

    if(mSelected.contains(photo)){
        view.findViewById(R.id.selector).setActivated(true);
    }

選択した画像は状態を変更しますが、彼の状態をクリックしても変更されません。申し訳ありませんが、私が欲しいものを説明できません。私の英語はもっと悪いです

私はそれを説明しようとします

mSelected.contains(photo) [state - active] -> [checked_on.jpg]クリックすると->最初から描画可能な状態が始まり、プログラムによる状態の変更を無視する場合

==編集==

アダプターアイテム --

private View getPhoto(int position, View convertView, ViewGroup parent){
        View view = convertView;
        if(convertView == null){
            view = LayoutInflater.from(mContext).inflate(R.layout.gallery_photo_item, parent, false);
        }

        ImageView mPhoto = (ImageView)view.findViewById(R.id.photoview);

        Photo photo = (Photo) getItem(position - COLUMNS_NUM);

        if(mSelected.contains(photo)){
            view.findViewById(R.id.selector).setActivated(true); // here i change my drawable state because it's front of my imageView
        }

        mLoader.displayImage(MediaStore.Images.Media.EXTERNAL_CONTENT_URI + File.separator + photo.id,
                mPhoto);

        return view;
    }
4

1 に答える 1