package com.wisedu.scc.love.activity.fragment;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.wisedu.scc.love.R;
import com.wisedu.scc.love.sqlite.model.ChatRecord;
import com.wisedu.scc.love.utils.CommonUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class MainTabFragment extends Fragment {
private View view;
private PullToRefreshListView mPullRefreshListView;
private SimpleAdapter mAdapter;
private ArrayList<HashMap<String, Object>> itemsData;
public MainTabFragment() {
}
/**
* 在onCreate之后调用
* @param inflater
* @param container
* @param savedInstanceState
* @return
*/
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_main, container, false);
mPullRefreshListView = (PullToRefreshListView)view.findViewById(R.id.messageList);
// 设置刷新模式
mPullRefreshListView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
// 设置列表内容
ListView actualListView = mPullRefreshListView.getRefreshableView();
//生成动态数组,并且转入数据
itemsData = getMessages();
mAdapter= new SimpleAdapter(MainTabFragment.this.getActivity(), //没什么解释
itemsData,//数据来源
R.layout.item_list_fragment_main,//XML实现
new String[]{"Avatar", "UserName", "Message", "Time", "Number"}, //动态数据KEY
new int[]{R.id.avatar, R.id.userName, R.id.message, R.id.time, R.id.number});
actualListView.setAdapter(mAdapter);
/*定义事件*/
mPullRefreshListView.setOnItemClickListener(new CustomOnItemClickListener());
mPullRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
// 异步获取消息任务
new GetMessagesTask().execute();
}
});
return view;
}
/**
* 自定义列表项单击事件
*/
private class CustomOnItemClickListener implements AdapterView.OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
HashMap<String, Object> item = (HashMap<String, Object>) parent.getItemAtPosition(position);
CommonUtil.shortToast(MainTabFragment.this.getActivity(), "该用户是:".concat(item.get("UserName").toString()));
}
}
/**
* 自定义异步任务
*/
private class GetMessagesTask extends AsyncTask<Void, Void, String[]> {
/**
* 后台任务
* @param params
* @return
*/
@Override
protected String[] doInBackground(Void... params) {
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
}
return null;
}
/**
* 在doInBackground之后执行
* @param result
*/
@Override
protected void onPostExecute(String[] result) {
mAdapter.notifyDataSetChanged();
// 必须调用,不然会一直处于刷新状态
mPullRefreshListView.onRefreshComplete();
super.onPostExecute(result);
}
}
/**
* 获得聊天数据
* @return
*/
private ArrayList<HashMap<String, Object>> getMessages(){
//生成动态数组,并且转入数据
ArrayList<HashMap<String, Object>> data = new ArrayList<>();
for (int i = 0; i < 10; i++) {
HashMap<String, Object> map = new HashMap<>();
map.put("Avatar", R.drawable.avatar_default);//添加图像资源的ID
map.put("UserName", "婷子");
map.put("Message", "好想你,你在哪儿?");
map.put("Time", "17:10");
map.put("Number", i);
data.add(map);
}
return data;
}
}