How to create a DataGrid display in android?

后端 未结 1 1260
不知归路
不知归路 2020-12-29 15:23

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.

1条回答
  •  别那么骄傲
    2020-12-29 16:04

    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

    
    
    
    
    

    row.xml

    
    
    
    

    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{
    
            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;
            }       
    
        }
    }
    

    0 讨论(0)
提交回复
热议问题