خانه » لایبرری های مفید و تجربیات شخصی خیلی مفید !!! » نحوه استفاده از SimpleCursorAdapter و CursorAdapter

نحوه استفاده از SimpleCursorAdapter و CursorAdapter

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, // Context.
        android.R.layout.two_line_list_item, // Specify the row template
                            // to use (here, two
                            // columns bound to the
                            // two retrieved cursor
                            // rows).
        mCursor, // Pass in the cursor to bind to.
        // Array of cursor columns to bind to.
        new String[] { ContactsContract.Contacts._ID,
            ContactsContract.Contacts.DISPLAY_NAME },
        // Parallel array of which template objects to bind to those
        // columns.
        new int[] { android.R.id.text1, android.R.id.text2 });

 

این کلاس ۴ ورودی می گیرد

ورودی اول context می باشد 

ورودی دوم layout می باشد ، که می توان آن را به دلخواه درست کرد (یک فایل xml شبیه اکتیویتی ها )

ورودی سوم cursor ما می باشد که حتما این cursor باید فیلدی به نام _id را داشته باشد.

ورودی چهارم آرایه ای از نوع رشته که عنوان ستون های cursor را شامل می شود

ورودی پنجم آدرس id فیلد های layout به ترتیبی که قصد نشان دادن ستون ها در آن هارا داریم

فرض کنید یک cursor با ستون ها _id و name داریم و قصد داریم برای آن یک آداپتر بسازیم  کد ما به صورت زیر می شود :

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
        android.R.layout.two_line_list_item,
        cursor,
        new String[] {"_id","name" },
        new int[] { android.R.id.text1, android.R.id.text2 });

در اینجا برای از یک layout ساده که خود اندروید قبلا ساخته استفاده کردیم :

android.R.layout.two_line_list_item

در داخل این layout دو تکست ویو با نام های 

android.R.id.text1, android.R.id.text2

وجود دارد که به ترتیب ستون ها با نام _id در داخل تکست ویو اول و ستون ها با نام name داخل تکست ویو دوم قرار می گیرند.

 

در مثال پایین از layout با یک تکست ویو استفاده شده ( توجه کنید با وجود اینکه ستون _id نشان داده نمی شود اما باید در cursor موجود باشد).

 

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
        android.R.layout.simple_list_item_1, 
        cursor, 
        new String[] { "title" }, 
        new int[] { android.R.id.text1 });

 

http://www.vogella.com/tutorials/AndroidListView/article.html#cursor

 

روش ساختن cursor با آرایه ها :

گاهی اوقات نیاز است تا از روی یک رشته یک cursor بسازید ، برای این کار از MatrixCursor استفاده می کنیم :

در مثال زیر از روی یک آرایه که در resources قرار دارد یک cursor با ۲ ستون به نام _id و name ساخته شده :

String[] columnNames = {"_id","name"}
    MatrixCursor cursor = new MatrixCursor(columnNames);
    String[] array = getResources().getStringArray(R.array.allStrings); //if strings are in resources
    String[] temp = new String[2];
    int id = 0;
    for(String item : array){
        temp[0] = Integer.toString(id++);
            temp[1] = item;
        cursor.addRow(temp);
    }    

 

 

ساخت cursorAdapter سفارشی :

 

CursorAdapter 

 

class CustomCursorAdapter extends CursorAdapter {

            private LayoutInflater mInflater;

            public CustomCursorAdapter(Context context, Cursor c) {
                super(context,c);
                mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            }

            @Override
            public void bindView(View view, Context context, Cursor cursor) {
                TextView content = (TextView) view.findViewById(android.R.id.text1);
                content.setText(cursor.getString(cursor.getColumnIndex(DataBaseAccess.SOURCE_TITLE)));

            }

            @Override
            public View newView(Context context, Cursor cursor, ViewGroup parent) {
                return mInflater.inflate(android.R.layout.simple_list_item_1, parent, false);
            }

        }

 

برچسب ها:
پست قبلی
پست بعدی

درباره ایلیا عابدینی

برنامه نویس اندروید و کارشناس مهندسی پزشکی، نفر سوم مسابقه برنامه نویسی اندروید http://www.schallenge.ir ، از سال 92 برنامه نویسی اندروید رو شروع کردم و در حال حاضر در شرکت عصر دانش در حال توسعه اپلیکیشن تجارت پی می باشدم ، این وبلاگ رو ساختم تا تجربیات روزانه و مفید خودم رو داخل اون بزارم. رزومه : iact.ir/cv

1 دیدگاه

  1. تشکر از مطلب عالی شما. 

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نمی شود.علامت دارها لازمند. *

*

رفتن به بالا