Gridview Widget in Android:-
It is used to display data using Grid Pattern using rows and columns.
<GridView
android:id="@+id/simpleGridView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:footerDividersEnabled="false"
android:padding="1dp"
android:numColumns="3" />
Base Adapter is a common base
class of a general implementation of an Adapter that can be used in GridView.
Whenever you need a customized grid view you create your own adapter and
extend the base adapter in that. Base Adapter can be extended to create a custom
Adapter for displaying custom grid items. ArrayAdapter is also an
implementation of BaseAdapter. You can read BaseAdapter
tutorial here.
Example of GridView using Base
Adapter in Android Studio: Below is an example of
GridView in Android, in which we show the Android logo’s in the form of Grids.
In this example firstly we create an int type array for logo images and then
call the Adapter to set the data in the GridView. In this, we create a
CustomAdapter by extending BaseAdapter in it. At Last, we implement
setOnItemClickListener event on GridView and on click of any item we send that
item to another Activity and show the logo image in full size.
Syntax:-
1) Design GridLayout:-
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".GridLayoutExample">
<GridLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:text="ONE"
android:id="@+id/bgl"
android:layout_width="wrap_content"
android:layout_row="1"
android:layout_column="1"
></Button>
<Button
android:text="TWO"
android:id="@+id/bg2"
android:layout_row="1"
android:layout_column="2"
></Button>
<Button
android:text="THREE"
android:id="@+id/bg3"
android:layout_row="2"
android:layout_column="1"
></Button>
<Button
android:text="FOUR"
android:id="@+id/bg4"
android:layout_row="2"
android:layout_column="2"
></Button>
</GridLayout>
</RelativeLayout>
2)
package com.example.additionapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView;
public class GridExample extends AppCompatActivity {
int logo[] = {R.drawable.bg, R.drawable.sss, R.drawable.bg,R.drawable.sss};
GridView grv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grid_example);
grv = findViewById(R.id.simpleGridView);
GridAdapter ga = new GridAdapter(getApplicationContext(),logo);
grv.setAdapter(ga);
}
}
3)
package com.example.additionapplication;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
public class GridAdapter extends BaseAdapter {
Context ctx;
int logos[];
LayoutInflater inflter;
GridAdapter(Context ctx, int logos[])
{
this.logos=logos;
this.ctx=ctx;
inflter = (LayoutInflater.from(ctx));
}
@Override
public int getCount() {
return logos.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
view = inflter.inflate(R.layout.layout, null); // inflate the layout
ImageView icon = (ImageView) view.findViewById(R.id.icon); // get the reference of ImageView
icon.setImageResource(logos[position]); // set logo images
return view;
}
}EVENT OF GRIDVIEW:-..................................GRIDVIEW use setOnItemClickListner to implement Code:-grv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),"Result is "+logo[position],Toast.LENGTH_LONG).show();
}
});
POST Answer of Questions and ASK to Doubt