• 6.Sorov () usuli Insert () usuli.
  • 7.Android-da MIME turlarini tuzish.
  • 8.ContentResolver.
  • Kod Kontent nomi




    Download 18.01 Kb.
    bet4/4
    Sana09.02.2024
    Hajmi18.01 Kb.
    #153803
    1   2   3   4
    Bog'liq
    1. Kontent-provayder nima Ichki provayderlar-fayllar.org
    Eshitishda nuqsoni bo\'Igan bolalar
    Kod


    Kontent nomi

    tarkib: //ru.alexanderklimov.provider.notepad/notes


    100

    Izohlar

    tarkib: //ru.alexanderklimov.provider.notepad/notes/#


    101

    NOTES_ID



    Kodda , kalit yordamida filial yaratiladi - biz butun jadval haqida ma'lumot olishni xohlaymizmi (kod 100) yoki ma'lum bir qatorga (kod 101).
    Ilova murakkab bo'lishi va bir nechta jadvalga ega bo'lishi mumkin. Keyin yana doimiylar bo'ladi. Masalan, shunga o'xshash.


    URI namunasi


    Kod


    Kontent nomi

    tarkib: //com.android.contacts/contacts


    1000

    ALOQALAR

    tarkib: //com.android.contacts/contacts/#


    1001

    CONTACTS_ID

    tarkib: //com.android.contacts/lookup/*


    1002

    CONTACTS_LOOKUP

    tarkib: //com.android.contacts/lookup/*/#


    1003

    CONTACTS_LOOKUP_ID

    ...

    ...

    ...

    tarkib: //com.android.contacts/data

    3000

    MA'LUMOT

    tarkib: //com.android.contacts/data/#


    3001

    DATA_ID

    ...

    ...

    ...

    Pound belgisi (#) raqamni, yulduzcha (*) qatorni ifodalaydi.

    6.So'rov () usuli Insert () usuli.

    So'rov () usuli



    Query () usuli ContentProvider klassi uchun talab qilinadi . Agar biz ma'lumotlar bazasiga kirish uchun kontent-provayderdan foydalansak, unda SQLiteDatabase- ning bir xil nomdagi usuli chaqiriladi . Usulning tarkibi deyarli bir xil.
    @Override
    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
    ...

    cursor = database.query(GuestEntry.TABLE_NAME, projection, selection, selectionArgs,


    null, null, sortOrder);
    ...
    }
    Tez maslahat:
    URI: content://com.example.android.cathouse/cats/3

    Projection: {"_id", "name"}


    Selection: "_id=?"
    Selection Args: {"3"}
    SQL bayonotiga mos keladi.
    SELECT id, name FROM cats WHERE _id=3

    Siz metod argumentlari uchun kerakli ma'lumotlarni dasturiy ravishda olishingiz kerak. Tanlov arglari uchun manzilning oxirgi qismini, bizning holatimizda 3 raqamini qaytaradigan ContentUris.parseId (uri) uslubiga e'tibor bering .


    Insert () usuli
    Insert () usuli ikkita parametrni o'z ichiga oladi - URI va ContenValues . Birinchi parametr, xuddi shu tarzda ishlaydi () usuli kabi . Ikkinchisi jadvalning kerakli ustunlariga ma'lumotlarni kiritadi.
    Qo'shish uchun insertGuest () yordamchi usuli qo'llaniladi .

    7.Android-da MIME turlarini tuzish.

    Xuddi veb-sayt berilgan ko'prik uchun MIME turini qaytarganidek (bu brauzerda berilgan tarkib turini ko'rish uchun dasturni faollashtirishga imkon beradi), kontent-provayder berilgan URI uchun MIME turini qaytarish imkoniyatiga ega. Bu sizga ma'lumotlarni ko'rishda ma'lum darajada moslashuvchanlikni beradi. Agar biz qanday ma'lumot turini olishimizni bilsak, unda bunday ma'lumotlarni namoyish qilish uchun mo'ljallangan bitta yoki bir nechta dasturni tanlashimiz mumkin. Masalan, kompyuterning qattiq diskida matnli fayl bo'lsa, biz uni namoyish etishga qodir bo'lgan bir nechta muharrirlarni tanlashimiz mumkin.


    MIME turlari Android-da HTTP-da bo'lgani kabi ishlaydi. Siz kontent-provayder tomonidan qo'llab-quvvatlanadigan ma'lum bir URI-ning MIME turini so'raysiz va kontent-provayder qabul qilingan standartlarga muvofiq MIME turini aniqlaydigan ikki qismli belgilar ketma-ketligini qaytaradi.
    MIME belgisi ikki qismdan iborat: turi va pastki turi. Quyida ba'zi taniqli MIME tiplari va subtip juftliklariga misollar keltirilgan:
    text / html
    text / css
    text / xml
    image / jpeg
    audio / mp3
    video / mp4
    application / pdf
    application / msword
    Asosiy ro'yxatdan o'tgan tarkib turlari:
    dastur
    audio
    tasvirli
    xabar
    modeli
    ko'p qismli
    matnli
    video
    Android MIME turlarini aniqlash uchun shunga o'xshash printsipdan foydalanadi. Android MIME turlarida vnd belgisi bu turdagi va pastki turlarning nostandart, ishlab chiqaruvchiga xosligini anglatadi. Android-dagi o'ziga xoslikni ta'minlash uchun domen nomlari singari bir nechta komponentlardan foydalangan holda turlari va pastki turlari ajratiladi. Bundan tashqari, har bir tarkib turiga mos keladigan Android MIME turlari ikki shaklda bo'ladi: bitta post va ko'p postli.
    MIME turlari Android-da, xususan intentsiyalar bilan ishlashda, tizim MIME ma'lumotlar turidan qaysi hodisani faollashtirish kerakligini aniqlaganda keng qo'llaniladi. MIME turlari har doim tegishli URI-lar asosida kontent-provayderlar tomonidan taqdim etiladi. MIME turlari bilan ishlashda uchta narsani yodda tutish kerak.
    1. Turi va pastki turi ular ko'rsatadigan tarkib turi uchun o'ziga xos bo'lishi kerak. Bu odatda buyumlar katalogi yoki bitta element. Android kontekstida katalog va element o'rtasidagi farq bir qarashda ko'rinadigan darajada aniq bo'lmasligi mumkin.


    2. Agar turi yoki pastki turi standart bo'lmasa, u oldindan vnd bilan qo'shilishi kerak (odatda yozuvlarning ma'lum turlari uchun).


    3. Odatda turlar va pastki turlar sizning ehtiyojlaringizga qarab nomlanadi.


    Ushbu nuqtani yana bir bor ta'kidlash kerak: Android-da kursor buyrug'i bilan qaytarilgan narsalar to'plamining asosiy MIME turi har doim vnd.android.cursor.dir , kursor buyrug'i tomonidan topilgan bitta element uchun asosiy MIME turi bo'lishi kerak . Android vnd. Android.cursor.item shaklida bo'lishi kerak . Agar biz kichik tip haqida gapiradigan bo'lsak, unda vnd.googl.note bilan bo'lgani kabi, manevr uchun joy kengayadi vnd komponentidan keyin sizga mos keladigan har qanday kichik turni erkin tanlashingiz mumkin.


    8.ContentResolver.

    Ilovaga tegishli har qanday tarkib ob'ekti getContentResolver () usuli orqali olinadigan ContentResolver sinfining nusxasini o'z ichiga oladi .


    ContentResolver contentResolver = getContentResolver();

    ContentResolver faoliyatdan kontent-provayderga so'rovlar va operatsiyalarni amalga oshirish uchun ishlatiladi. ContentResolver , so'rovlar va bitimlar uchun ContentProvider- dagi kabi usullarni o'z ichiga oladi . ContentResolver har qanday talab faqat oladi - u bilan o'zaro hamkorlik kontent provayderi amalga oshirish haqida bilish kerak bo'lgan emas URI yo'lini ko'rsatadi, deb ContentProvider kirish uchun.
    http://fayllar.org
    Download 18.01 Kb.
    1   2   3   4




    Download 18.01 Kb.