• Tidak ada hasil yang ditemukan

RSS Reader dengan Android Penulis : Agus Haryanto

N/A
N/A
Protected

Academic year: 2021

Membagikan "RSS Reader dengan Android Penulis : Agus Haryanto"

Copied!
10
0
0

Teks penuh

(1)

RSS Reader dengan Android

Penulis : Agus Haryanto

http://agusharyanto.net

agus.superwriter@gmail.com

Di web-web yang sudah tekenal dan banyak pengunjungnya biasanya menyediakan RSS Feed yang

bisa diakses tujuannya jelas untuk memudahkan orang berkunjung ke webnya dan juga informasi

terbaru dari web tersebut dapat diketahui oleh pembaca setianya.

Saya sudah coba beberapa tutorial membuat RSSReader dengan Android yang readernya

menggunakan java murn, tapi setelah test beberapa telihat kurang stabil ada kalanya bisa memab rss

feed dari Web A tetapi tidak bisa baca RSSFedd dari Web B.

Akhirnya saya coba alternatif lain untuk readernya dengan menggunakan WebView yang

mengembed dokumen html yang dapat membaca rssfeed. Dan hasilnya memuaskan. Otak dari

Librarynya adalah ZRSSFEED.

Sekarang mari kita mulai

1. Siapkan daftae URL yang akan kita baca RSSFeednya. Karenda disini banyak dari jurusan

Ekonomi.

WebSite

Alamat

Detik Finance

http://rss.detik.com/index.php/finance

Inilah.com Ekonomi

http://www.inilah.com/rss/feed/ekonomi/

Antara Bisnis

http://www.antara.co.id/rss/ekb.xml

Oke Zone

http://sindikasi.okezone.com/index.php/economy/RSS2.0

VivaNews Bisnis

http://rss.vivanews.com/get/bisnis

(2)

Klik Next terus sampai finish. Setelah itu project akan terbuat dan tampil dijendela package

explorer.

2. Edit activity_main.xml lalu ketikan kode berikut

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ListView android:id="@+id/listViewSite" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" > </ListView>

(3)

</RelativeLayout>

3. Buat layout baru dengan nama activity_rssreader.xml lalu ketikan kode berikut

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <WebView android:id="@+id/webView1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" /> <ProgressBar android:id="@+id/progressBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" /> </RelativeLayout>

4. Buta Layout untuk item yang akan digunakan dalam listview dengan nama list_item_site.xml

lalu ketikan kode berikut

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textViewSite" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text = "Medium Text"

android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/textViewSiteUrl" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textViewSite" android:text = "TextView" /> </RelativeLayout>

(4)

5. Edit MainActivity.java lalu ketikan kode berikut

package com.agusharyanto.rssreader; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.SimpleAdapter;

public class MainActivity extends Activity { ListView listView1;

private ArrayList<HashMap<String, String>> sitelist = new ArrayList<HashMap<String, String>>();

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main); initData();

}

public void initData() {

sitelist.add(genHashMap("Detik Finance","http://rss.detik.com/index.php/finance")); sitelist.add(genHashMap("Inilah.com Ekonomi","http://www.inilah.com/rss/feed/ekonomi/")); sitelist.add(genHashMap("Antara Bisnis","http://www.antara.co.id/rss/ekb.xml")); sitelist.add(genHashMap("Okezone Ekonomi","http://sindikasi.okezone.com/index.php/economy/RSS2.0")); sitelist.add(genHashMap("VivaNews Bisnis","http://rss.vivanews.com/get/bisnis")); setListData(); }

public HashMap<String, String> genHashMap(String name, String url) { HashMap<String, String> map = new HashMap<String, String>(); map.put("name", name);

map.put("url", url); return map;

}

public void setListData() {

listView1 = (ListView) findViewById(R.id.listViewSite); ListAdapter adapter = new SimpleAdapter(this, sitelist,

R.layout.list_item_site, new String[] { "name","url" }, new int[] { R.id.textViewSite, R.id.textViewSiteUrl }); listView1.setAdapter(adapter);

(5)

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

// showToast("kesini", 0);

HashMap<String, String> radio = (HashMap<String, String>) listView1 .getItemAtPosition(position);

// Toast.makeText(getBaseContext(), "ID '" + o.get("id") + // "' was clicked.", Toast.LENGTH_SHORT).show();

callIntent(radio); }

}); }

public void callIntent(HashMap<String, String> radio) {

Intent intent = new Intent(this, RSSReaderActivity.class); intent.putExtra("object", radio);

startActivity(intent); }

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu);

return true; }

}

6. Untuk menampilkan RSS Feednya buat class baru dengan nama RSSReaderActivity.java lalu

ketikan kode berikut

package com.agusharyanto.rssreader; import java.util.HashMap; import android.app.Activity; import android.graphics.Bitmap; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ProgressBar; import android.widget.Toast;

public class RSSReaderActivity extends Activity { private WebView web;

ProgressBar progressBar; String rssurl;

String localurl = "file:///android_asset/rssreader/index.html"; int flag = 0;

(6)

@Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_rssreader); web = (WebView) findViewById(R.id.webView1);

progressBar = (ProgressBar) findViewById(R.id.progressBar1); web

.getSettings().setJavaScriptEnabled( true ); Bundle extras = getIntent().getExtras(); if (extras == null) {

return; }

web.setWebViewClient(new myWebClient());

HashMap<String, String> rsssite = (HashMap<String, String>) extras.get( "object" );

rssurl = rsssite.get("url"); setTitle(rsssite.get("name")); web.loadUrl(localurl);

}

public class myWebClient extends WebViewClient { @Override

public void onPageStarted(WebView view, String url, Bitmap favicon) { // logDebug("Loading URL: " + url);

super.onPageStarted(view, url, favicon); if (!localurl.equals(web.getUrl())) {

progressBar.setVisibility(View.VISIBLE); }

}

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub

view.loadUrl(url); return true; }

@Override

public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); if (localurl.equals(web.getUrl())) { web.loadUrl("javascript:setRSSFeed('" + rssurl + "')"); } progressBar.setVisibility(View.GONE); } } @Override

(7)

// Check if the key event was the BACK key and if there's history if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) {

web.goBack(); return true; }

// If it wasn't the BACK key or there's no web page history, bubble up // to the default

// system behavior (probably exit the activity) return super.onKeyDown(keyCode, event);

}

}

7. Pada class diatas terlihat bahwa untuk menampilkan Rss Feed nya kita memanfaatkan webview

yang meload dokumen pada directory /asset/deploy/index.html , dimana disini kita menggunakan

library jquery dan zrssfeed untuk menampilkan rss feed. Jika ingin tahu lebih jelas bisa berkunjung

ke http://www.zazar.net/developers/jquery/zrssfeed/ . Untuk keperluan pembuatan aplikasi ini saya

sudah siapkan filenya dan bisa di download di

(8)

9. Buka file index.html pada directory /asset/rssreader

<!DOCTYPE html>

<html> <head>

<meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link href="jquery.zrssfeedmod.css" rel="stylesheet" type="text/css" /> <script src="jquery-1.4.2.min.js" type="text/javascript"></script>

(9)

<script src="jquery.zrssfeed.min.js" type="text/javascript"></script> <title>zRSSFeed - Selecting RSS feeds from a menu</title>

<script type="text/javascript"> function setRSSFeed(feedurl) { if (feedurl) { $('#loadingmessage').show(); $('#rssfeed').rssfeed(feedurl, { media : false, header : false }, function(e) { $('#loadingmessage').hide(); }); } } </script> </head> <body>

<div id='loadingmessage' style='display:none; text-align: center;'> <img src='img/ajax-loader.gif'/>

</div>

<div id="rssfeed"></div> </body>

</html>

10. Sekarang mari kita jalankan aplikasi yang telah kita buat. Klik kanan pada project RSSReader

lalu pilih RunAs --> Android Application

(10)

Jika Semua code sudah benar maka hasilnya alan seperti ini

Nah mudahkan membuat aplikasi RSSReader dengan android. Tapi coba buka pikiran dan mata kita

apakah kita bisa menambahkan atau berbuat sesuatu agar aplikasi kita terlihat lebih menarik.

Referensi

Dokumen terkait

Ciri teori belajar dari pernyataan bahwa seorang guru melakukan pembelajaran dengan memberikan kebebasan yang luas kepada siswa untuk menentukan apa

(1) Untuk memperoleh izin sebagaimana dimaksud dalam pasal 26, Kepala Dinas Kesehatan Kabupaten/Kota mengajukan permohonan tertulis kepada Bupati/Walikota melalui

- merujuk kepada syarikat yang mengeluarkan produk yang sama dan dijual dalam pasaran yang sama dengan produk usahawan4. - pesaing boleh memberi sumbangan dari segi meningkatkan

Penelitian ini bertujuan untuk menentukan survival rate serta memperkirakan Total Akumulasi Biomassa Atas Permukaan dari jenis-jenis pohon utama hutan rawa gambut yang digunakan

Metode penentuan lokasi penelitian dilakukan secara purposive (sengaja). Jumlah sampel dalam penelitian ini adalah 30 responden pengusaha brem dan teknik pengambilan

Struktur penyajian upacara siraman calon pengantin adat Sunda grup Swari Laksmi Kabupaten Bandung diawali dengan tahap bubuka, pada tahap ini dibuka dengan musik

Berdasarkan hasil penelitian yang didapatkan bahwa ekstrak etanol daun Sirih ( Piper betle L) berpengaruh terhadap proses spermatogenesis pada tikus putih jantan

Lalu masuk kedalam Reverse Osmosis Unit 1 dan 2, yang bekerja untuk memproduksi air bersih dan hasilnya masuk ke Reverse Osmosis Tank untuk pembuangannya (reject)