1 RSS Reader dengan Android Penulis : Agus Haryanto Di web-web yang sudah tekenal dan banyak pengunjungnya biasanya menyediakan RSS Feed yang bisa di...
RSS Reader dengan Android Penulis : Agus Haryanto http://agusharyanto.net [email protected] 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
2. Dari Android buat project baru dengan nama RSSReader
1
Klik Next terus sampai finish. Setelah itu project akan terbuat dan tampil dijendela package explorer.
2. Edit activity_main.xml lalu ketikan kode berikut
2
3. Buat layout baru dengan nama activity_rssreader.xml lalu ketikan kode berikut <WebView android:id="@+id/webView1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" />
4. Buta Layout untuk item yang akan digunakan dalam listview dengan nama list_item_site.xml lalu ketikan kode berikut
public class MainActivity extends Activity { ListView listView1; private ArrayList> sitelist = new ArrayList>(); @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); listView1.setOnItemClickListener(new OnItemClickListener() {
4
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 import import import import import import import import import import import
public class RSSReaderActivity extends Activity { private WebView web; ProgressBar progressBar; String rssurl; String localurl = "file:///android_asset/rssreader/index.html"; int flag = 0; /** Called when the activity is first created. */
5
@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; }
// 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. File rssreader.zip yang sudah didownload diextract ke directory asset.
<script src="jquery.zrssfeed.min.js" type="text/javascript"> zRSSFeed - Selecting RSS feeds from a menu <script type="text/javascript">
function setRSSFeed(feedurl) { if (feedurl) { $('#loadingmessage').show(); $('#rssfeed').rssfeed(feedurl, { media : false, header : false }, function(e) { $('#loadingmessage').hide(); }); } }
10. Sekarang mari kita jalankan aplikasi yang telah kita buat. Klik kanan pada project RSSReader lalu pilih RunAs --> Android Application
9
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.