Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create a DataGrid display in android?

Tags:

android

Hai any one please tell me is there any possibility to create a DataGrid in android ,if yes mean please help me with some code snippets,or give some related web urls.

like image 250
Rajapandian Avatar asked Jun 18 '09 07:06

Rajapandian


People also ask

What is GridView android?

android.widget.GridView. A view that shows items in two-dimensional scrolling grid. The items in the grid come from the ListAdapter associated with this view.

How do you use GridView?

Open Google Meet and start the session. Next to the person icon on the top-right corner, the Grid View icon will appear. Click on the icon to make everyone in the meeting appear on the screen in a grid view. Meet will resize everyone's box so that they all fit in one screen.

What is grid layout in Android Studio?

A layout that places its children in a rectangular grid. The grid is composed of a set of infinitely thin lines that separate the viewing area into cells. Throughout the API, grid lines are referenced by grid indices. A grid with N columns has N + 1 grid indices that run from 0 through N inclusive.


1 Answers

Book.java

package com.dgrid;

public class Book {
    String title;
    String author;

    public Book(String title, String author) {
        this.title = title;
        this.author = author;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }

}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    >
<ListView  
    android:id="@+id/bookListView"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:divider="#ffffff" 
    />
</AbsoluteLayout>

row.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/widget0"
android:orientation="horizontal"
android:layout_toRightOf="@android:id/icon"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<com.dgrid.ListItemView
android:id="@+id/title"
android:layout_height="wrap_content"
android:layout_width="150px"
android:text="Title"
android:textSize="10sp"
android:textStyle="bold"
android:textColor="#ff000000"
/>

ListItemView.java

package com.dgrid;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.TextView;

public class ListItemView extends TextView {
    private boolean isHeader = false;
    private Paint linePaint;

    public ListItemView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    public ListItemView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public ListItemView(Context context) {
        super(context);
        init();
    }

    public void init(){
        linePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        linePaint.setColor(Color.parseColor("#000000"));
    }
    public boolean isHeader() {
        return isHeader;
    }

    public void setHeader(boolean isHeader) {
        this.isHeader = isHeader;
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        if(isHeader){
            canvas.drawColor(Color.parseColor("#AAFFFF99"));
        }
        canvas.drawLine(0, 0, getMeasuredWidth(), 0,linePaint);
        canvas.drawLine(0, getMeasuredHeight(), getMeasuredWidth(), getMeasuredHeight(),linePaint);
        canvas.drawLine(0,0, 0, getMeasuredHeight(),linePaint);
    }
}

DatagridActivity.java

package com.dgrid;



import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class DatagridActivity extends Activity {
    Context mContext;
    Book[] books = {new Book("Title","Author"),new Book("Clean Code","Uncle Bob"),new Book("Face 2.0","Allen Cooper")};
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mContext = this;
        setContentView(R.layout.main);
        ListView bookListView =(ListView)findViewById(R.id.bookListView);
        LitemItemAdapter mcqListAdapter = new LitemItemAdapter(this,R.layout.row,books);
        bookListView.setAdapter(mcqListAdapter);
    }
    class LitemItemAdapter extends ArrayAdapter<Book>{

        public LitemItemAdapter(Context context, int textViewResourceId,
                Book[] objects) {
            super(context, textViewResourceId, objects);
        }
        public View getView(int position, View convertView, ViewGroup parent) {
            View v = convertView;
            if (v == null) {

                LayoutInflater vi = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.row, null);
            }
            Book item = books[position];
            if (item != null) {
                    ListItemView titleView = (ListItemView) v.findViewById(R.id.title);
                    ListItemView authorView = (ListItemView) v.findViewById(R.id.author);
                    if(position == 0){
                        titleView.setHeader(true);
                        authorView.setHeader(true);
                    }
                    if(titleView != null){
                        titleView.setText(item.getTitle());
                    }
                    if(authorView != null){
                        authorView.setText(item.getAuthor());
                    }
            }
            return v;
        }       

    }
}
like image 91
zawhtut Avatar answered Oct 17 '22 10:10

zawhtut