# Using GridView in Android Application

  • Add GridView on the activity layout which will automatically adds XML GridView object in the related xml layout as shown below


  • Create Activity layout : layout/results.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FF234499"
    android:orientation="vertical" >

    <GridView
        android:id="@+id/resultsGrid"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:numColumns="5"
        android:background="#FF234499">
    </GridView>
</LinearLayout>
  • Create Adapter which is responsible for creating cells on the GUI 
public class TextAdapter extends BaseAdapter{
     private Context c;
     private String[] list;

     public TextAdapter(Context ctx) {
          this.c = ctx;
          list = new String[50];
         
          for (int i = 0; i < list.length; i++) {
               list[i] = "Cell #" + i;
          }
     }
    
     public int getCount() {
          return list.length;
     }

     public Object getItem(int arg0) {
          return null;
     }

     public long getItemId(int arg0) {
          return 0;
     }

     public View getView(int position, View convertView, ViewGroup parent) {
          final int p = position;
         
          TextView txtView = new TextView(c);
         
          if (position % 2 == 0) {
               txtView.setBackgroundColor(Color.BLACK);
          } else {
               txtView.setBackgroundColor(Color.WHITE);
          }
    
          //onclick enablement
          txtView.setOnClickListener(new View.OnClickListener() {
               public void onClick(View arg0) {
                    System.out.println("Postion clicked : " + p);
               }
          });
           
          txtView.setText(list[position]);
          return txtView;
     }
}
  • Create linkage between GridView and application code by adding below code
public class ResultsActivity extends Activity implements View.OnClickListener {
      @Override
      protected void onCreate(Bundle savedInstanceState) {
      //grid view
      GridView resultsGrid = (GridView) findViewById(R.id.resultsGrid);
      resultsGrid.setAdapter(new TextAdapter(this));
 }

No comments :

Post a Comment