GridView(表格式布局)
来源:互联网 发布:szvre新域名 编辑:程序博客网 时间:2024/05/09 04:19
用法跟listView区别不大,就是布局中多了一个属性
<GridView
android:id="@+id/gridview_photo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="3"></GridView>显示3排,效果:
Mainactivity代码
public class MainActivity extends Activity {model:Fruit代码
private List<Fruit> mFruits;
private GridView gridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView= (GridView) findViewById(R.id.gridview_photo);
LayoutInflater inflater=getLayoutInflater();
mFruits=new ArrayList<>();
for(int i=0;i<20;i++){
mFruits.add(new Fruit("苹果",R.mipmap.apple));
mFruits.add(new Fruit("草莓",R.mipmap.berry));
mFruits.add(new Fruit("橘子",R.mipmap.orange));
}
GridAdapter adapter = new GridAdapter(inflater, mFruits);
gridView.setAdapter(adapter);
}
public class Fruit {自定义adapter代码
private String name;
private int img;
private boolean[] mManagerAllCheckedBox;
public Fruit(String name, int img) {
this.name = name;
this.img = img;
}
public void setName(String name) {
this.name = name;
}
public void setImg(int img) {
this.img = img;
}
public int getImg() {
return img;
}
public String getName() {
return name;
}
}
public class GridAdapter extends BaseAdapter{
private LayoutInflater mInflater;
private List<Fruit> mFruits;
private boolean[] mManagerChecBox;
public GridAdapter(LayoutInflater mInflater, List<Fruit> mFruits) {
this.mInflater = mInflater;
this.mFruits = mFruits;
mManagerChecBox=new boolean[mFruits.size()];
}
@Override
public int getCount() {
return mFruits.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Fruit fruit= mFruits.get(position);
ViewHolder viewHolder=null;
if(convertView==null){
viewHolder=new ViewHolder();
convertView=mInflater.inflate(R.layout.item_grid,null);
viewHolder.imageView= (ImageView) convertView.findViewById(R.id.imgview_grid);
viewHolder.checkBox= (CheckBox) convertView.findViewById(R.id.checkbox_grid);
viewHolder.imageView_back= (ImageView) convertView.findViewById(R.id.imgview_background);
viewHolder.textView= (TextView) convertView.findViewById(R.id.textview_grid);
convertView.setTag(viewHolder);
}else{
viewHolder= (ViewHolder) convertView.getTag();
}
viewHolder.imageView.setImageResource(fruit.getImg());
viewHolder.textView.setText(fruit.getName());
viewHolder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mManagerChecBox[position] = isChecked;
notifyDataSetChanged();
}
});
viewHolder.checkBox.setChecked(mManagerChecBox[position]);
if(mManagerChecBox[position]){
viewHolder.imageView_back.setVisibility(View.VISIBLE);
}else {
viewHolder.imageView_back.setVisibility(View.INVISIBLE);
}
return convertView;
}
class ViewHolder{
TextView textView;
ImageView imageView;
CheckBox checkBox;
ImageView imageView_back;
}
}
0 0
- GridView(表格式布局)
- GridView布局(九宫格布局)
- GridView(网格布局)样例
- Android布局之TableLayout(表格布局)
- Android布局之TableLayout(表格布局)
- 【Android布局之【TableLayout(表格布局)】
- asp.net布局(一)表格布局
- android布局(2)表格布局
- Android:控件布局(表格布局)TableLayout
- web前端之tab表格布局(四)----表格布局
- SWT:FormLayout表格式布局
- 布局实战(表格模拟)
- Android TableLayout(表格布局)
- GridLayout(表格布局管理器)
- GridView布局
- gridview布局
- GridView布局
- GridView布局
- 网页优化个人总结
- golang闭包里的坑
- 黑马程序员——————集合框架《一》
- Github for Windows安装
- iOS分类和扩展(Categories和Extensions)
- GridView(表格式布局)
- 匈牙利命名法的辩思
- 【数论】[Uva12169]Disgruntled Judge
- PHP版计算器
- 提取不重复的整数(桶排序思想)
- Hessian客户端向服务端发送请求头
- UGUI基本控件
- Jdk环境变量配置
- nginx+iis实现负载均衡