Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK

Membuat klien Twitter untuk Android: membuat Timeline Database

by
Read Time:11 minsLanguages:

Indonesian (Bahasa Indonesia) translation by Dika Budiaji (you can also view the original English article)

Dalam seri ini, kita membuat Twitter klien untuk platform Android menggunakan perpustakaan Twitter4J. Tutorial ini akan membuat database SQLite untuk menyimpan user home timeline. Kami juga akan memetakan data dari database ke view kita buat terakhir kali menggunakan adaptor, sehingga pengguna dapat melihat perkembangan mereka.


Juga tersedia dalam seri ini:

  1. Membuat klien Twitter untuk Android: Setup & Ikhtisar
  2. Membuat klien Twitter untuk Android: membangun antarmuka
  3. Membuat klien Twitter untuk Android: membuat Timeline Database
  4. Membuat klien Twitter untuk Android: mengambil menggunakan Layanan Update
  5. Membuat klien Twitter untuk Android: Tweeting, Retweeting dan membalas

Dalam tutorial pertama dua kami setup proyek di Eclipse, mendaftar aplikasi Twitter, impor file Twitter4J JAR dan membangun user interface. Kami juga menangani persiapan pengguna untuk masuk ke account Twitter dan otorisasi aplikasi untuk mengakses tweets mereka.

Tutorial ini akan membuat database SQLite untuk menyimpan pengguna rumah timeline. Kami juga akan memetakan data dari database ke View yang kita buat terakhir kali menggunakan adaptor, sehingga pengguna dapat melihat perkembangan mereka.


Langkah 1: Buat Database

Mari kita masuk langsung dan membuat database timeline menggunakan SQLite. Membuat kelas baru dalam proyek Anda dengan memilihnya dalam Explorer paket, memilih File, New kemudian Class. Masukkan "NiceDataHelper" sebagai nama kelas. Buka file kelas baru dan extends Deklarasi sebagai berikut:

Ini adalah kelas helper database SQLite sistem. Dalam kelas ini, kami akan membuat dan mengelola database untuk home timeline tweet.

Tambahkan statement impor berikut di bagian atas kelas:

Impor ini adalah untuk dasar database pengolahan dan error logging, ditambah aplikasi Context untuk general reference.

Database akan mengandung sebuah tabel tunggal untuk tweet update. Tabel ini akan termasuk kolom berikut untuk setiap tweet: Twitter ID status; tweet teks; nama layar dari tweeter; waktu tweet dikirim; URL gambar profil tweeter.

Mulailah dengan membuat beberapa konstanta dalam kelas:

Variabel konstan ini mencakup database versi nama, Anda harus mengubah jika Anda ingin meng-upgrade database di masa depan development aplikasi Anda. Variabel ini juga mencakup nama database dan nama kolom. Kelas BaseColumns membantu kita untuk menetapkan kolom ID unik menggunakan akhiran "_id".

Berikutnya membangun SQLite membuat table String untuk tabel home:

Membuat metode konstruktor untuk kelas helper database Anda:

Konstruktor hanya memanggil metode superclass. Selanjutnya tambahkan metode "onCreate" di mana kita akan mengeksekusi pembentukan tabel database:

Di sini kita adalah hanya mengeksekusi pembuatan database SQL String. Pada akhir metode tabel akan dibuat.

Untuk menyelesaikan menyiapkan database kami, menerapkan metode yang "onUpgrade" jika Anda memutuskan untuk mengubah database dikemudian hari:

Hal ini memungkinkan Anda untuk meng-upgrade database Anda dengan mengubah nomor versi dan pembuatan String, atau salah satu kolom.

Kita sekarang akan menambahkan sebuah metode akhir kelas helper database kami. Metode ini akan kembali nilai-nilai dari diperoleh Twitter status update terbaru dan akan dipanggil dari kelas Service kita buat dalam tutorial selanjutnya. Tambahkan garis metode sebagai berikut:

Dalam metode ini kami akan mengkonversi objek Status lulus ke satu set ContentValues. Status kelas adalah bagian dari perpustakaan Twitter4J, pemodelan satu status update, atau tweet. Ketika aplikasi Servuce mengambil user home timeline, itu akan berlalu setiap pembaruan Status di dalamnya metode "getValues". Metode ini akan mengambil informasi dari tweet yang kita inginkan untuk menyimpan dalam database, yaitu ID, teks, nama user, waktu dan profil URL gambar. Metode akan menempatkan masing-masing dalam satu set ContentValues yang akan kemudian mengembalikan. Service akan kemudian mencoba untuk menulis data dalam ContentValues ke database, memperbarui dengan tweets baru diperoleh.

Kami akan menerapkan sebagian dari proses ini ketika kita membuat Service dalam tutorial berikutnya. Sekarang yang perlu kita lakukan adalah memberikan tubuh metode "getValues". Sebelum baris di mana nilai-nilai kembali, tambahkan berikut:

Proses dapat menyebabkan exception, jadi try catch blok diperlukan. Perhatikan bahwa upaya metode untuk mengambil setiap elemen dari Status update bahwa kita dirancang database untuk menyimpan menggunakan metode Twitter4J. Anda akan memerlukan beberapa impor ditambahkan ke kelas:


Langkah 2: Buat kelas Adapter

Kita akan menggunakan adaptor kelas untuk memetakan data menciak ke User interface View yang kami buat dalam tutorial terakhir. ListView yang kami buat dalam layout file timeline XML akan menunjukkan menampilkan tweet Baru sebagai mereka menjadi tersedia. Setiap tweet update akan ditampilkan dalam tata letak XML update yang kita juga didefinisikan. Jika Anda melihat kembali pada "res/layout/update.xml" Anda akan melihat bahwa ada bagian untuk menampilkan semua data item yang disimpan dalam database, yaitu gambar profil pengguna dan nama layar, tweet dan waktu itu secara tweeted.

Kelas adaptor akan masuk pembaruan tweet data peta untuk item view user interface. Daripada harus menerapkan ini secara manual, kelas "SimpleCursorAdapter" Mari kita mengotomatisasi bagian dari proses, memetakan data ke view sementara masih memungkinkan kita untuk menyesuaikan proses pemetaan ini sesuai dengan kebutuhan aplikasi.

Membuat sebuah class baru di app, namai itu "UpdateAdapter". extend kelas Deklarasi sebagai berikut:

Impor parent class dan Log kelas sebagai berikut:

Menambahkan variabel instance sebagai berikut:

Ubah Twitter developer Key dan Secrect untuk mencerminkan Anda sendiri, seperti yang Anda digunakan dalam app utama aktivitas kelas dalam tutorial terakhir. "from" array mewakili nama kolom tabel database setiap yang dipetakan. "to" array mewakili id View bahwa "from" item akan dipetakan ke. Id dimasukkan dalam XML layout yang kami buat dalam tutorial terakhir.


Langkah 3: Map Data untuk User Interface

Dalam kelas adaptor Anda, menambahkan metode konstruktor sebagai berikut:

Kode ini memanggil superclass constructor, melewati aplikasi Context, Vuew item di mana data akan ditampilkan, Cursor untuk melintasi data dan "from" dan "to" array yang kami buat sebagai variabel instan. Anda akan memerlukan impor pernyataan berikut untuk kode ini:

Ini melakukan bagian tengah dari proses pemetaan, yaitu menampilkan data di dalam view tertentu. Namun, kami juga ingin menyesuaikan perilaku dan munculnya elemen user interface yang dihasilkan. Kami akan menyesuaikan prosedur pemetaan untuk mengambil gambar profil untuk setiap tweet dan format waktu update. Dalam tutorial terakhir dari seri, kami juga akan extend kode ini untuk men-setup klik listener untuk tombol retweet, tombol reply dan nama pengguna Twitter untuk setiap tweet.

Menerapkan metode "bindView" dalam kelas adaptor Anda menggunakan garis besar berikut:

Di sini kita hanya memanggil metode superclass. Metode "bindView" yang memungkinkan kita untuk menentukan pengolahan tambahan untuk ketika data yang dipetakan ke view. Pertama mari kita coba untuk men-download gambar profil untuk tweet update saat ini:

Kita perlu try catch blok karena kita sedang berusaha untuk memuat sumber daya eksternal. Metode pertama mendapat URL gambar profil sebagai disimpan di kolom database. Maka metode mendapat referensi untuk lihat item untuk menampilkan gambar, menggunakan atribut ID yang, sementara kita dalam layout file update XML. Akhirnya kode mengambil gambar sebagai InputStream, mengimpor sebagai Drawable dan pengaturan sebagai gambar dalam ImageView. Anda akan memerlukan impor berikut:

Sekarang mari kita mengubah tampilan waktu update, seperti itu akan disimpan dalam database sebagai angka. Untuk mengkonversi ke human-readable waktu relatif, tambahkan kode berikut setelah catch blok:

Pertama kita mengambil nilai kolom yang sebagai long, kemudian mendapatkan referensi ke item View untuk menampilkannya dalam sebagai bagian dari pembaruan XML. Akhirnya kita format itu sebagai String sehingga user dapat melihat ketika tweet relatif terhadap masa kini. Anda akan perlu pernyataan impor tambahan berikut:


Langkah 4: Membangun Home Timeline

Kembali ke app main aktivitas kelas "TwitNiceActivity" Mari kita sekarang menerapkan metode "setupTimeline". Dalam tutorial berikutnya kami akan menambahkan Service pemrosesan metode, tetapi untuk sekarang mari kita menangani memulai database dan adaptor. Sebelum Anda memulai pada metode, tambahkan berikut contoh variabel di atas kelas Anda:

Kami akan menggunakan variabel ini ketika membuat timeline. Tambahkan berikut untuk menentukan ukuran default untuk tampilan gambar profil:

Anda akan perlu untuk menambahkan impor berikut:

Sekarang untuk mengatur timeline. Jika Anda membuat garis metode "setupTimeline" untuk pengujian terakhir kali, Anda dapat menambahkan tubuh metode berikutnya. Jika tidak, Buat garis metode sekarang:

Anda mungkin ingat dari terakhir kali bahwa metode ini disebut ketika pengguna sudah memiliki wewenang aplikasi untuk menggunakan Twitter account. Dalam metode kami akan instantiate class Database Helper, mengambil readable database, instantiate kelas adaptor dan mengaturnya untuk memetakan data ke view kami. Mulai dengan menetapkan konten timeline View:

Beberapa metode kita akan gunakan bisa throw exception, jadi berikutnya menambahkan try dan catch blok:

Kita akan menambahkan kutipan berikutnya kode dalam blok mencoba. Di sini kita akan ke instantiate variabel-variabel yang kita dinyatakan di atas kelas. Pertama kali mendapatkan referensi ke ListView dari tata letak timeline, di mana update View akan muncul:

Selanjutnya buat instance kelas Database Helper dan menggunakannya untuk mengambil readable database:

Baris pertama di sini membuat instance kelas Database Helper kami didefinisikan, sementara kedua benar-benar mengambil database. Sekarang mari kita query database dan memperoleh Cursor untuk melintasi, melewati ini Cursor ke adaptor kelas:

Database query hanya mengambil segala sesuatu dari table, ordering dengan tweets update terbaru pertama. Kami melewati Cursor ke metode konstruktor kelas adaptor yang kita buat.


Berikutnya

Dalam tutorial ini kami telah membuat database timeline twett kami, yang didefinisikan adaptor untuk menampilkan data di dalam user interface view dan dimanfaatkan kelas-kelas ini dalam main activity aplikasi kami, untuk membangun timeline terlihat.

Dalam tutorial berikutnya kami akan menyiapkan Service dan Broadcast Receiver untuk terus mengambil update baru dan menampilkannya dalam user home timeline. Pada saat ketika Anda menjalankan aplikasi Anda tidak akan melihat setiap update, seperti kami tidak belum diambil user timeline. Sebagai bagian dari Service kelas kami akan mengambil timeline menggunakan metode Twitter4J, memanggil mengatur interval untuk berulang kali mengambil tweets terbaru dari account user yang mengikuti. Kami kemudian akan menulis hasil ke database dan menyajikan mereka dalam tampilan timeline.

Advertisement
Did you find this post useful?
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.