您的位置:首页 > 其它

GridView实现九宫格

2016-02-23 20:44 225 查看
首先,定义布局文件,代码如下:

<GridView

android:id="@+id/home_gv"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center"

<!--每个格子的水平间距-->

android:horizontalSpacing="10dp"

<!--设置为3列-->
android:numColumns="3"

<!--每个格子的竖直间距-->

android:verticalSpacing="10dp"

/>

[/code]

然后再代码中实例化,先自定义adapter类HomeAdapter,实现BaseAdapter的四个必须实现的方法。其中,getView最为重要,主要实现步骤:
1.判断convertView是否存在;
2.如果存在则不再需要填充View;
3.如果不存在则需要填充新的View,核心代码:

LayoutInflater mInflater;

mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

convertView = mInflater.inflate(R.layout.home_item, null);

[/code]

private void initView() {

GridView list_home = (GridView) findViewById(R.id.home_gv);

//设置适配器

list_home.setAdapter(new HomeAdapter());

}


/**

* 主界面按钮的adapter

*

*@author CR.MO

*

*/

private class HomeAdapter extends BaseAdapter {

@Override

public View getView(int position, View convertView, ViewGroup parent)
{
//如果convertView不存在,则填充新的View
if (convertView == null) {

LayoutInflater mInflater;

mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

convertView = mInflater.inflate(R.layout.home_item, null);

} 

TextView tv_name = (TextView) convertView.findViewById(R.id.home_item_name);

tv_name.setText(names[position]);

return convertView;

}


@Override

public int getCount() {

return names.length;

}


@Override

public Object getItem(int position) {

return null;

}


@Override

public long getItemId(int position) {

return 0;

}


}

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: