Display Data in GridView in Android
In this article I am going to
explain how to display data in GridView in an Android application. Here is the
example of Custom GridView in which I have used two TextViews.
·
Start a new project named GridViewData.
·
Open res/layout/main.xml and insert
the following:
<?xml
version="1.0"
encoding="utf-8"?>
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:stretchMode="columnWidth"
android:cacheColorHint="#00000000"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="1"
android:clipChildren="true"
android:horizontalSpacing="5dip"
android:verticalSpacing="5dip"
/>
·
Create a customgrid.xml inside
res/layout folder and insert the
following code:
<?xml
version="1.0"
encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TableLayout
android:id="@+id/TableLayout01"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<TableRow android:id="@+id/TableRow01"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<TextView
android:text="@string/hello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtId"
android:layout_gravity="center_horizontal"
/>
<TextView
android:text="@string/hello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtName"
android:layout_gravity="center_horizontal"
/>
</TableRow>
</TableLayout>
</LinearLayout>
·
Create DataAdapter.java file and
insert the following code:
import
android.content.Context;
import
android.view.LayoutInflater;
import
android.view.View;
import
android.view.ViewGroup;
import
android.widget.BaseAdapter;
import
android.widget.TextView;
public
class DataAdapter
extends BaseAdapter
{
Context
mContext;
private String []
id = {"S001","S002","S003","S004","S005","S006","S007"};
private String []
name={"Rohit","Rahul","Ravi","Amit","Arun","Anil","Kashif"};
private LayoutInflater
mInflater;
public DataAdapter(Context c)
{
mContext=c;
mInflater = LayoutInflater.from(c);
}
public
int getCount()
{
return
id.length;
}
public Object getItem(int position)
{
return position;
}
public
long getItemId(int position)
{
return position;
}
public View getView(int position, View
convertView, ViewGroup parent)
{
ViewHolder holder=null;
if(convertView==null)
{
convertView =
mInflater.inflate(R.layout.customgrid,
parent,false);
holder =
new ViewHolder();
holder.txtId=(TextView)convertView.findViewById(R.id.txtId);
holder.txtId.setPadding(100,
10,10 , 10);
holder.txtName=(TextView)convertView.findViewById(R.id.txtName);
holder.txtName.setPadding(100,
10, 10, 10);
if(position==0)
{
convertView.setTag(holder);
}
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.txtId.setText(id[position]);
holder.txtName.setText(name[position]);
return convertView;
}
static
class ViewHolder
{
TextView
txtId;
TextView
txtName;
}
}
·
Open the main activity file and modify according to it:
import
android.app.Activity;
import
android.os.Bundle;
import
android.widget.GridView;
public
class
GridViewDataActivity
extends Activity {
@Override
public
void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new DataAdapter(this));
}
}
·
Run the application.
The output should look like below:
|