package com.smit.rssreader; import java.util.regex.Matcher; import java.util.regex.Pattern; import com.smit.EasyLauncher.R; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.graphics.Color; import android.os.Bundle; import android.text.Html; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.webkit.WebView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; public class ShowDetailItemActivity extends Activity { private RSSOpenHelper myRssOpenHelper = new RSSOpenHelper(this); private HistoryOpenHelper history = new HistoryOpenHelper(this); private String channelTitle = null; private String category = null; private String itemTitle = null; private String itemLink = null; private String rssUrl = null ; private Cursor currentPoint = null ; private WebView webView = null; private TextView txtLink ; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.rss_show_detail_item); Intent startingIntent = getIntent(); if (startingIntent != null) { Bundle bundle = startingIntent.getExtras(); if (bundle != null) { channelTitle = bundle.getString("CHANNEL"); category = bundle.getString("CATEGORY"); itemTitle = bundle.getString("ITEMTITLE"); rssUrl = bundle.getString("RSSURL"); itemLink = bundle.getString("ITEMLINK"); //setTitle(channelTitle); } } webView = (WebView) findViewById(R.id.itemdetail); txtLink =(TextView)findViewById(R.id.textview3); initializeDatasource(); // ��ʼ��ListBaseAdapter����Դ currentPoint = findCurrentPosition(category ,rssUrl); //�ҵ���ǰItem��λ�� webView.getSettings().setJavaScriptEnabled(true); txtLink.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub webView.loadUrl(itemLink); } }); LinearLayout layoutLast = (LinearLayout)findViewById(R.id.layout_last); LinearLayout layoutAddFavorite = (LinearLayout)findViewById(R.id.layout_addfavorite); LinearLayout layoutNext = (LinearLayout)findViewById(R.id.layout_next); layoutLast.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if(currentPoint != null){ if(currentPoint.isFirst()){ Toast.makeText(ShowDetailItemActivity.this, "�Ѿ��ǵ�һ���ˣ�", Toast.LENGTH_SHORT).show(); }else{ currentPoint.moveToPrevious(); resetShow(currentPoint); myRssOpenHelper.updateISREAED(category, rssUrl,itemLink); //���͹㲥֪ͨRSSReaderActivity�����и��� Intent i = new Intent(RssReaderConstant.READED_BROADCAST); sendBroadcast(i); } } } }); layoutAddFavorite.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if(isInHistory(category,itemLink)){ history.updateFavorite(category,itemLink, RssReaderConstant.INFAVORITE); Toast.makeText(ShowDetailItemActivity.this, "�Ѿ���ӵ��ղؼУ�", Toast.LENGTH_SHORT).show(); }else{ TextView tv =(TextView)findViewById(R.id.textview1); String title = tv.getText().toString(); history.insertItem(category, title, itemLink, RssReaderConstant.INFAVORITE); Toast.makeText(ShowDetailItemActivity.this, "�Ѿ���ӵ��ղؼУ�", Toast.LENGTH_SHORT).show(); } Intent intent = new Intent(RssReaderConstant.ADDFAVORITE); sendBroadcast(intent); } }); layoutNext.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if(currentPoint != null){ if(currentPoint.isLast()){ Toast.makeText(ShowDetailItemActivity.this, "�Ѿ������һ���ˣ�", Toast.LENGTH_SHORT).show(); }else{ currentPoint.moveToNext(); resetShow(currentPoint); myRssOpenHelper.updateISREAED(category, rssUrl,itemLink); //���͹㲥֪ͨRSSReaderActivity�����и��� Intent i = new Intent(RssReaderConstant.READED_BROADCAST); sendBroadcast(i); } } } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { webView.goBack(); return true; } return super.onKeyDown(keyCode, event); } private void initializeDatasource() { Cursor c = myRssOpenHelper.queryItem(category,itemLink); if (c.moveToFirst()) { int desIndex = c.getColumnIndex(RSSOpenHelper.ITEM_DES); int pubIndex = c.getColumnIndex(RSSOpenHelper.ITEM_PUBDATE); String des = c.getString(desIndex); String pub = c.getString(pubIndex); TextView tv1 =(TextView)findViewById(R.id.textview1); tv1.setTextColor(Color.BLACK); tv1.setText(replaceBlank(itemTitle)); TextView tv2 =(TextView)findViewById(R.id.textview2); tv2.setTextColor(Color.BLACK); tv2.setText(Html.fromHtml(replaceBlank(des))); txtLink.setText(replaceBlank(itemLink)); TextView tv4 =(TextView)findViewById(R.id.textview4); tv4.setTextColor(Color.BLACK); tv4.setText("�������ڣ�"+replaceBlank(pub)); } c.close(); } public String replaceBlank(String s) { Pattern p = Pattern.compile("\\s*|\t|\r|\n"); Matcher m = p.matcher(s); return m.replaceAll(""); } private Cursor findCurrentPosition(String cate ,String url){ Cursor cur = myRssOpenHelper.queryWithCU(cate, url); if(cur.moveToFirst()){ int linkIndex = cur.getColumnIndex(RSSOpenHelper.ITEM_LINK); while(!cur.isAfterLast()){ String link = cur.getString(linkIndex); if(link.equals(itemLink)){ return cur ; } cur.moveToNext(); } } cur.close(); return null ; } private void resetShow(Cursor c){ int linkIndex = c.getColumnIndex(RSSOpenHelper.ITEM_LINK); itemLink = c.getString(linkIndex); int desIndex = c.getColumnIndex(RSSOpenHelper.ITEM_DES); int pubIndex = c.getColumnIndex(RSSOpenHelper.ITEM_PUBDATE); int titIndex = c.getColumnIndex(RSSOpenHelper.ITEM_TITLE); String des = c.getString(desIndex); String pub = c.getString(pubIndex); String tit = c.getString(titIndex); TextView tv1 =(TextView)findViewById(R.id.textview1); tv1.setTextColor(Color.BLACK); tv1.setText(Html.fromHtml(replaceBlank(tit))); TextView tv2 =(TextView)findViewById(R.id.textview2); tv2.setTextColor(Color.BLACK); tv2.setText(Html.fromHtml(replaceBlank(des))); txtLink.setText(replaceBlank(itemLink)); TextView tv4 =(TextView)findViewById(R.id.textview4); tv4.setTextColor(Color.BLACK); tv4.setText("�������ڣ�"+replaceBlank(pub)); } private boolean isInHistory(String cate, String link){ Cursor c = history.queryWithCH(cate,link); if(c.moveToFirst()){ c.close(); return true ; } c.close(); return false ; } }