package com.threeH.MyExhibition.ui;
import android.graphics.Typeface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.*;
import com.threeH.MyExhibition.R;
import com.threeH.MyExhibition.adapters.MessageListAdapter;
import com.threeH.MyExhibition.entities.Exhibition;
import com.threeH.MyExhibition.entities.MessageList;
import com.threeH.MyExhibition.listener.TelephoneClickListener;
import com.threeH.MyExhibition.tools.MSYH;
import com.threeH.MyExhibition.widget.XListView;
import java.util.ArrayList;
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 MessageActivity extends BaseActivity implements
ActivityInterface,AdapterView.OnItemClickListener,XListView.IXListViewListener{
private List<MessageList.Message> mDataes = new ArrayList<MessageList.Message>();
private XListView mXLvi;
private MessageListAdapter mListAdapter;
private LoadTask mLoadTask;
private Exhibition mExhibition;
private Handler handler = new Handler(){
@Override
public void handleMessage(android.os.Message msg) {
if(1 == msg.what){
if(mDataes.size() == 0){
mXLvi.setVisibility(View.GONE);
}else{
mListAdapter = new MessageListAdapter(context, mDataes);
mXLvi.setAdapter(mListAdapter);
}
}
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentViewWithNoTitle(R.layout.message_page);
mExhibition = (Exhibition) getIntent().getExtras().get("exhibition");
findView();
initdata();
addAction();
}
@Override
public void findView() {
mXLvi = (XListView)findViewById(R.id.message_list_view);
}
@Override
public void initdata() {
mLoadTask = new LoadTask();
mLoadTask.execute();
}
@Override
public void addAction() {
mXLvi.setDividerHeight(0);
mXLvi.setOnItemClickListener(this);
mXLvi.setPullLoadEnable(true);
mXLvi.setXListViewListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
MessageListAdapter.selectedID = position-1;
mListAdapter.notifyDataSetChanged();
}
private void onLoad() {
mXLvi.stopRefresh();
mXLvi.stopLoadMore();
mXLvi.setRefreshTime("...");
}
@Override
public void onRefresh() {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mDataes.clear();
initdata();
onLoad();
}
}, 2000);
}
@Override
public void onLoadMore() {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
onLoad();
}
}, 2000);
}
class LoadTask extends AsyncTask<Void,Integer,Integer>{
@Override
protected Integer doInBackground(Void... params) {
new Thread(new Runnable() {
@Override
public void run() {
try {
String mJsonData = mController.getService().ExMessage(mExhibition.getExKey(),token);
MessageList mMessage = mGson.fromJson(mJsonData,MessageList.class);
for (MessageList.Message message : mMessage.getList()){
mDataes.add(message);
}
} catch (Exception e) {
e.printStackTrace();
}
android.os.Message message = handler.obtainMessage();
message.what = 1;
handler.sendMessage(message);
}
}).start();
return null;
}
}
@Override
protected void onDestroy() {
mLoadTask = null;
super.onDestroy();
}
}