package com.threeH.MyExhibition.ui;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.*;
import com.google.gson.Gson;
import com.threeH.MyExhibition.R;
import com.threeH.MyExhibition.adapters.NewslistAdapter;
import com.threeH.MyExhibition.entities.Exhibition;
import com.threeH.MyExhibition.entities.NewList;
import com.threeH.MyExhibition.listener.TelephoneClickListener;
import com.threeH.MyExhibition.tools.MSYH;
import com.threeH.MyExhibition.tools.Tool;
import com.threeH.MyExhibition.widget.XListView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* Created with IntelliJ IDEA.
* User: apple
* Date: 13-6-19
* Time: 上午11:38
* To change this template use File | Settings | File Templates.
*/
public class NewsPageActivity extends BaseActivity implements
ActivityInterface,AdapterView.OnItemClickListener,XListView.IXListViewListener{
private XListView listView;
private NewslistAdapter adapter;
private NewList newsData;
private Typeface typeface;
List<HashMap<String,String>> data = new ArrayList<HashMap<String, String>>();
private ImageView imageviewPrompt;
private LoadDataAsyncTask loadDataAsyncTask;
private Exhibition mExhibition;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
if(1 == msg.what){
if(data.size() == 0){
listView.setVisibility(View.GONE);
imageviewPrompt.setVisibility(View.VISIBLE);
}else{
listView.setVisibility(View.VISIBLE);
imageviewPrompt.setVisibility(View.GONE);
adapter = new NewslistAdapter(data,context);
listView.setAdapter(adapter);
}
}
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentViewWithNoTitle(R.layout.newslist);
typeface = MSYH.getInstance(context.getApplicationContext()).getNormal();
mExhibition = (Exhibition) getIntent().getExtras().get("exhibition");
findView();
initdata();
addAction();
}
@Override
public void findView() {
listView = (XListView) this.findViewById(R.id.newslist_listview);
imageviewPrompt = (ImageView) this.findViewById(R.id.prompt_imageview);
}
@Override
public void initdata() {
loadDataAsyncTask = new LoadDataAsyncTask();
loadDataAsyncTask.execute();
}
@Override
public void addAction() {
listView.setOnItemClickListener(this);
listView.setPullLoadEnable(true);
listView.setXListViewListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(this,ShowHtmlActivity.class);
intent.putExtra("url", Tool.makeNewsURL(mExhibition.getExKey(),newsData.getList().get(position-1).getNewsKey()));
intent.putExtra("title","展会新闻");
intent.putExtra("exKey",mExhibition.getExKey());
startActivity(intent);
}
private void onLoad() {
listView.stopRefresh();
listView.stopLoadMore();
listView.setRefreshTime("...");
}
@Override
public void onRefresh() {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
data.clear();
initdata();
onLoad();
}
}, 2000);
}
@Override
public void onLoadMore() {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
onLoad();
}
}, 2000);
}
class LoadDataAsyncTask extends AsyncTask<Void,Integer,Integer> {
@Override
protected Integer doInBackground(Void... voids) {
new Thread(new Runnable() {
@Override
public void run() {
try {
String str = mController.getService().ExNewsList(mExhibition.getExKey());
newsData = new Gson().fromJson(str, NewList.class);
for(NewList.News news : newsData.getList()){
HashMap<String,String> map = new HashMap<String, String>();
map.put("exKey",mExhibition.getExKey());
map.put("newsKey",news.getNewsKey());
map.put("newsTitle",news.getTitle());
data.add(map);
}
} catch (Exception e) {
e.printStackTrace();
}
Message message = handler.obtainMessage();
message.what = 1;
handler.sendMessage(message);
}
}).start();
return null;
}
}
}