package cn.fanfan.userinfo; import java.util.ArrayList; import org.apache.http.Header; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.AsyncHttpResponseHandler; import com.loopj.android.http.RequestParams; import com.umeng.analytics.MobclickAgent; import cn.fanfan.common.Config; import cn.fanfan.common.GlobalVariables; import cn.fanfan.detail.essay.EssayDetailActivity; import cn.fanfan.detail.question.QuestionDetailActivity; import cn.fanfan.main.R; import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.widget.AbsListView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.AbsListView.OnScrollListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.widget.Toast; public class ArticleActivity extends Activity { private String TAG = "ArticleActivity"; private ArrayList<ArticleModel> datas; private ListView listView; private int mFirstVisibleItem; private int mVisibleItemCount; private int totalItem; private int currentPage = 1; private LinearLayout footerLinearLayout; private TextView footText; private String uid; private int perPage = 10; private int total_pages = 1; private ArticleAdapter adapter; private int isArticle; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.draft); ActionBar actionBar = getActionBar(); actionBar.setIcon(null); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setDisplayUseLogoEnabled(false); // actionBar.setDisplayShowHomeEnabled(true); actionBar.show(); init(); datas = new ArrayList<ArticleModel>(); listView = (ListView) findViewById(R.id.draft_lisview); footerLinearLayout = (LinearLayout) LayoutInflater.from( ArticleActivity.this).inflate(R.layout.next_page_footer, null); footText = (TextView) footerLinearLayout.findViewById(R.id.footer_text); listView.addFooterView(footerLinearLayout, "aa", false); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub Intent intent = new Intent(); if (isArticle == GlobalVariables.ARTICLE) { intent.setClass(ArticleActivity.this, EssayDetailActivity.class); intent.putExtra("eid", datas.get(arg2).getId()); } else { intent.setClass(ArticleActivity.this, QuestionDetailActivity.class); intent.putExtra("questionid", datas.get(arg2).getId()); } startActivity(intent); } }); listView.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO Auto-generated method stub if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE && (mFirstVisibleItem + mVisibleItemCount == totalItem)) { if (currentPage <= total_pages) { // getInformation(String.valueOf(currentPage)); setData(); } else { footText.setText("û�и���������!"); footerLinearLayout.setVisibility(View.GONE); } } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // TODO Auto-generated method stub mFirstVisibleItem = firstVisibleItem; mVisibleItemCount = visibleItemCount; totalItem = totalItemCount; } }); setData(); } private void init() { // TODO Auto-generated method stub Intent intent = getIntent(); uid = intent.getStringExtra("uid"); isArticle = intent.getIntExtra("isArticle", 0); } private void setData() { // TODO Auto-generated method stub RequestParams params = new RequestParams(); params.put("uid", uid); params.put("page", String.valueOf(currentPage)); params.put("perpage", String.valueOf(perPage)); AsyncHttpClient client = new AsyncHttpClient(); String url; if (isArticle == GlobalVariables.ARTICLE) { url = Config.getValue("MyAyticle"); } else { url = Config.getValue("MyAsk"); } client.get(url, params, new AsyncHttpResponseHandler() { @Override public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { // TODO Auto-generated method stub String information = new String(arg2); try { JSONObject jsonObject = new JSONObject(information); int errno = jsonObject.getInt("errno"); if (errno != 1) { String err = jsonObject.getString("err"); Toast.makeText(ArticleActivity.this, err, Toast.LENGTH_SHORT).show(); } else { String rsm = jsonObject.getString("rsm"); jsonObject = new JSONObject(rsm); String total_rows = jsonObject.getString("total_rows"); if (currentPage == 1) { int total_row = Integer.parseInt(total_rows); if (total_row % perPage == 0) { total_pages = total_row / perPage; } else { total_pages = total_row / perPage + 1; } } String rows = jsonObject.getString("rows"); JSONArray jsonArray = new JSONArray(rows); for (int i = 0; i < jsonArray.length(); i++) { ArticleModel model = new ArticleModel(); JSONObject jsonObject2 = jsonArray.getJSONObject(i); String id = jsonObject2.getString("id"); String title = jsonObject2.getString("title"); String message; if (isArticle == GlobalVariables.ARTICLE) { message = jsonObject2.getString("message"); } else { message = jsonObject2.getString("detail"); } model.setId(id); model.setTitle(title); model.setMessage(message); datas.add(model); } if (currentPage == 1) { if (Integer.parseInt(total_rows) < perPage) { footText.setText("û�и��������ˣ�"); footerLinearLayout.setVisibility(View.GONE); } adapter = new ArticleAdapter(ArticleActivity.this, datas); listView.setAdapter(adapter); currentPage++; } else { adapter.notifyDataSetChanged(); currentPage++; } } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) { // TODO Auto-generated method stub } }); } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. if (item.getItemId() == android.R.id.home) { this.finish(); } return super.onOptionsItemSelected(item); } public void onResume() { super.onResume(); MobclickAgent.onResume(this); } public void onPause() { super.onPause(); MobclickAgent.onPause(this); } }