由网友(默言)分享简介:我创建具有图像网格视图布局和text.I想多选它是工作的罚款项目,但我想强调这是选择的网格项目。I am creating a Grid view layout with image and text.I want multi-select of item which is working fine but i wa...
我创建具有图像网格视图布局和text.I想多选它是工作的罚款项目,但我想强调这是选择的网格项目。
I am creating a Grid view layout with image and text.I want multi-select of item which is working fine but i want to highlight the grid items which is selected.
下面是我的code:
public class FragMent1 extends Fragment{
BaseAdapter MyAdapter;
private Context mContext;
@SuppressLint("ValidFragment")
public FragMent1(Context c) {
mContext = c;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//View view = inflater.inflate(R.layout.g, null);
View view = inflater.inflate(R.layout.gridview,null);
final GridView listView = (GridView) view.findViewById(R.id.mainGrid);
listView.setAdapter(new Adapter());
//listView.setSelection(1);
listView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE_MODAL);
listView.setMultiChoiceModeListener(new MultiChoiceModeListener() {
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
// TODO Auto-generated method stub
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
// TODO Auto-generated method stub
mode.setTitle("Select Items");
mode.setSubtitle("One item selected");
return true;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
// TODO Auto-generated method stub
int selectCount = listView.getCheckedItemCount();
switch (selectCount) {
case 1:
mode.setSubtitle("One item selected");
break;
default:
mode.setSubtitle("" + selectCount + " items selected");
break;
}
return true;
}
@Override
public void onItemCheckedStateChanged(ActionMode mode, int position,
long id, boolean checked) {
// TODO Auto-generated method stub
int selectCount = listView.getCheckedItemCount();
switch (selectCount) {
case 1:
mode.setSubtitle("One item selected");
break;
default:
mode.setSubtitle("" + selectCount + " items selected");
break;
}
}
});
return view;
}
private class Adapter extends BaseAdapter {
@Override
public int getCount() {
return mThumbIds.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View myView = convertView;
ImageView image;
if (convertView == null) {
image = new ImageView(FragMent1.this.getActivity());
image.setLayoutParams(new GridView.LayoutParams(85, 85));
image.setScaleType(ImageView.ScaleType.CENTER_CROP);
LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
myView = inflater.inflate(R.layout.grid_items_ontap, null);
// Add The Image!!!
ImageView iv = (ImageView)myView.findViewById(R.id.grid_item_image_OnTap);
iv.setImageResource(mThumbIds[position]);
// Add The Text!!!
TextView tv = (TextView)myView.findViewById(R.id.grid_item_text_onTap);
tv.setText(names[position] );
}
return myView;
}
private Integer[] mThumbIds = {
R.drawable.car, R.drawable.car,
R.drawable.car, R.drawable.car,
R.drawable.car,R.drawable.car,R.drawable.car
};
private String[] names={"ab","cd","ef","gh","ij","kl","mn"};
}
}
我应该怎么添加到code为突出,这将要选择的网格项。
what should i add to the code for highlighting the grid item which will be selected.
请给我建议一些方法来做到这一点。 先谢谢了。
Please suggest me some way to do it. Thanks in advance.
推荐答案
您可以使用选择器高亮显示项目
you can use selector to highlight item
在绘制文件夹中创建一个XML文件
In drawable folder create a xml file
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/blue" android:state_selected="true"/>
<item android:drawable="@color/transparent"/>
</selector>
和设置您的GridView的listSelector像
and set listSelector of your gridview like
安卓listSelector =@可绘制/ list_selector
android:listSelector="@drawable/list_selector"
相关推荐
最新文章