<style name="item_selector">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">@dimen/text_size_12</item>
<item name="android:paddingTop">3dp</item>
<item name="android:paddingBottom">3dp</item>
<item name="android:paddingLeft">5dp</item>
<item name="android:paddingRight">5dp</item>
<item name="android:gravity">center</item>
<item name="android:textColor">@drawable/black_red_text_color_selector</item>
<item name="android:background">@drawable/black_red_line_bg_selector</item>
</style>
在getView中设置选中状态
view.setSelected()
操作,发现并未起作用
于是换条路在adpter中加方法
public void setFirstSelected(){
if(firstSeleced != null) {
if (!isSelected) {
firstSeleced.name.setBackgroundResource(R.drawable.red_all_bg_small_corner);
firstSeleced.name.setTextColor(Color.parseColor("#ffffff"));
} else {
firstSeleced.name.setBackgroundResource(R.drawable.black_red_line_bg_selector);
firstSeleced.name.setTextColor(context.getResources().getColorStateList(R.color.black_red_text_color_selector));
}
isSelected = !isSelected;
}}
外部选中操作
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
adapter.setFirstSelected();
view.setSelected(!view.isSelected());
if(view.isSelected()){
selectedItem = buyItem.getData().getShortsList().get(position);
price.setText( "¥" + selectedItem.getPrice());
content.setText(selectedItem.getUnit());
}
}
});