2009-06-18 13 views
8

है कोई भी कृपया मुझे बताएं कि एंड्रॉइड में डेटाग्रिड बनाने की कोई संभावना है, अगर हां मतलब है तो कृपया मुझे कुछ कोड स्निपेट्स में मदद करें, या कुछ संबंधित वेब यूआरएल दें।एंड्रॉइड में डेटाग्रिड डिस्प्ले कैसे बनाएं?

+0

क्या आप डेटाग्रिड द्वारा अपना मतलब बता सकते हैं? – emmby

+1

यह एक गिमे-तेह-कोडेज़ प्रश्न है, इसके बाद आपको पहले भुगतान करने के बाद कोड लिखने का प्रयास करें, और फिर यदि आपको समस्याएं हैं तो उन्हें यहां पूछें। – Reno

+0

यहां एक एंड्रॉइड डेटाग्रिड घटक है: http://www.androidjetpack.com/Home/AndroidDataGrid – user2453876

उत्तर

9

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

डेटाग्रिडएक्टिविटी.जावा

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

    } 
} 
+0

इस कोड को आजमाया नहीं है, लेकिन मुझे लगता है कि आप टेक्स्टव्यू को लपेटने के लिए विजेट 0 के बिना कर सकते हैं। 150px के लिए हार्डकोड शीर्षक भी है? क्या होता है यदि यह एक पंक्ति के लिए एक लंबा खिताब है, तो यह एक डाटाग्रिड की तरह नहीं दिखता है, नहीं? –

संबंधित मुद्दे