package com.cnblogs.android; import java.util.List; import android.content.Intent; import android.content.res.Resources; import android.os.AsyncTask; import android.os.Bundle; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.MenuInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnCreateContextMenuListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; import android.widget.ImageButton; import android.widget.ListView; import android.widget.ProgressBar; import android.widget.TextView; import com.cnblogs.android.adapter.RssListAdapter; import com.cnblogs.android.core.RssListHelper; import com.cnblogs.android.entity.RssList; /** * RSS�����µ����� * * @author walkingp * */ public class RssListActivity extends SuperView { ListView listView; private RssListAdapter adapter;// ����Դ List<RssList> listRss; int cateId; String cateTitle; TextView txtNoData;// û������ Button btnBack;// ���� ProgressBar bodyProgressBar;// ����ListView���ؿ� ImageButton btnRefresh;// ˢ�°�ť ProgressBar topProgressBar;// ���ذ�ť TextView txtAppTitle;// ���� Resources res;// ��Դ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.rss_list_layout); res = this.getResources(); InitialControls(); InitialData(); BindControls(); new PageTask().execute(); } /** * ��ʼ���б� */ private void InitialControls() { listView = (ListView) findViewById(R.id.rss_list); bodyProgressBar = (ProgressBar) findViewById(R.id.rssList_progressBar); btnBack = (Button) findViewById(R.id.rss_button_back); btnRefresh = (ImageButton) findViewById(R.id.rss_refresh_btn); topProgressBar = (ProgressBar) findViewById(R.id.rss_progressBar); txtAppTitle = (TextView) findViewById(R.id.txtAppTitle); txtNoData = (TextView) findViewById(R.id.txtNoData); } /** * ��ʼ������ */ void InitialData() { cateId = getIntent().getIntExtra("cateId", 0); cateTitle = getIntent().getStringExtra("title"); } /** * ���¼� */ private void BindControls() { txtAppTitle.setText(cateTitle); // ���� btnBack.setOnClickListener(new OnClickListener() { public void onClick(View v) { RssListActivity.this.finish(); } }); // ˢ�� btnRefresh.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { new PageTask().execute(); } }); // �����ת listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { TextView tvTitle = (TextView) v .findViewById(R.id.rss_item_title); TextView tvUrl = (TextView) v.findViewById(R.id.rss_item_url); TextView tvIsCnblogs = (TextView) v .findViewById(R.id.rss_item_is_cnblogs); TextView tvAuthor = (TextView) v .findViewById(R.id.rss_item_author); String title = tvTitle.getText().toString(); String url = tvUrl.getText().toString(); boolean isCnblogs = tvIsCnblogs.getText().toString() .equals("1"); String author = tvAuthor.getText().toString(); Intent intent = new Intent(); Bundle bundle = new Bundle(); if (isCnblogs) {// ����԰ intent.setClass(RssListActivity.this, AuthorBlogActivity.class); bundle.putString("blogName", title); bundle.putString("author", author); } else { intent.setClass(RssListActivity.this, RssItemsActivity.class); bundle.putString("title", title); bundle.putString("url", url); } intent.putExtras(bundle); startActivity(intent); } }); // �����¼� listView.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.blog_list_contextmenu, menu); menu.setHeaderTitle(R.string.menu_bar_title); } }); } public class PageTask extends AsyncTask<String, Integer, List<RssList>> { @Override protected List<RssList> doInBackground(String... params) { List<RssList> list = RssListHelper.GetRssList(cateId); return list; } @Override protected void onPostExecute(List<RssList> result) { bodyProgressBar.setVisibility(View.GONE); topProgressBar.setVisibility(View.GONE); btnRefresh.setVisibility(View.VISIBLE); if (result == null || result.size() == 0) { txtNoData.setVisibility(View.VISIBLE); } else { adapter = new RssListAdapter(getApplicationContext(), result, listView, RssListAdapter.EnumSource.RssList, adapter); listView.setAdapter(adapter); } } @Override protected void onPreExecute() { bodyProgressBar.setVisibility(View.VISIBLE); topProgressBar.setVisibility(View.VISIBLE); btnRefresh.setVisibility(View.GONE); } } }