package com.tekinarslan.material.sample.fragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.Toast;
import com.tekinarslan.material.sample.R;
import com.tekinarslan.material.sample.base.adapterhelper.BaseAdapterHelper;
import com.tekinarslan.material.sample.base.adapterhelper.MultiItemTypeSupport;
import com.tekinarslan.material.sample.base.adapterhelper.QuickAdapter;
import com.tekinarslan.material.sample.bean.ChatMessage;
import com.tekinarslan.material.sample.customui.SwipeRefreshLayoutLoad2;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Created by vic on 2015/5/12.
*/
public class SwipRefreshLoadFragment3 extends Fragment {
private static final String ARG_POSITION = "position";
private ListView mListView;
private ArrayList<ChatMessage> mDatas = new ArrayList<ChatMessage>();
private QuickAdapter<ChatMessage> mAdapter;
private int position;
private final static String TAG = "MainActivity";
public static SwipRefreshLoadFragment3 newInstance(int position) {
SwipRefreshLoadFragment3 f = new SwipRefreshLoadFragment3();
Bundle b = new Bundle();
b.putInt(ARG_POSITION, position);
f.setArguments(b);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
position = getArguments().getInt(ARG_POSITION);
View rootView = inflater.inflate(R.layout.fragment_swiperefresh_load_layout2, container, false);
setRefreshList(rootView);
initListView(rootView);
return rootView;
}
private void initListView(View rootView) {
mListView = (ListView) rootView.findViewById(R.id.listview_lv);
MultiItemTypeSupport<ChatMessage> multiItemTypeSupport = new MultiItemTypeSupport<ChatMessage>() {
@Override
public int getLayoutId(int position, ChatMessage msg) {
if (msg.isComMeg()) {
return R.layout.main_chat_from_msg;
}
return R.layout.main_chat_send_msg;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int postion, ChatMessage msg) {
if (msg.isComMeg()) {
return ChatMessage.RECIEVE_MSG;
}
return ChatMessage.SEND_MSG;
}
};
initDatas();
mAdapter = new QuickAdapter<ChatMessage>(getActivity(), mDatas,
multiItemTypeSupport) {
@Override
protected void convert(BaseAdapterHelper helper, ChatMessage item) {
switch (helper.layoutId) {
case R.layout.main_chat_from_msg:
helper.setText(R.id.chat_from_content, item.getContent());
helper.setText(R.id.chat_from_name, item.getName());
helper.setImageResource(R.id.chat_from_icon, item.getIcon());
break;
case R.layout.main_chat_send_msg:
helper.setText(R.id.chat_send_content, item.getContent());
helper.setText(R.id.chat_send_name, item.getName());
helper.setImageResource(R.id.chat_send_icon, item.getIcon());
break;
}
}
};
// mAdapter.showIndeterminateProgress(true);
// 设置适配器
mListView.setAdapter(mAdapter);
}
private BaseAdapter adapter;
private void initDatas() {
ChatMessage msg = null;
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.renma, "renma", "where are you ",
null, true);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.renma, "renma", "where are you ",
null, true);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.renma, "renma", "where are you ",
null, true);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.renma, "renma", "where are you ",
null, true);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.renma, "renma", "where are you ",
null, true);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.renma, "renma", "where are you ",
null, true);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.renma, "renma", "where are you ",
null, true);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.renma, "renma", "where are you ",
null, true);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.renma, "renma", "where are you ",
null, true);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.renma, "renma", "where are you ",
null, true);
mDatas.add(msg);
msg = new ChatMessage(R.drawable.xiaohei, "xiaohei", "where are you ",
null, false);
mDatas.add(msg);
}
private void setRefreshList(View layoutView) {
// 模拟一些数据
final List<String> datas = new ArrayList<String>();
for (int i = 0; i < 20; i++) {
datas.add("item - " + i);
}
// 构造适配器
// final BaseAdapter adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, datas);
// 获取listview实例
// ListView listView = (ListView) layoutView.findViewById(R.id.listview_lv);
// listView.setAdapter(adapter);
// 获取RefreshLayout实例
final SwipeRefreshLayoutLoad2 myRefreshListView = (SwipeRefreshLayoutLoad2)
layoutView.findViewById(R.id.swipe_layout);
// 设置下拉刷新时的颜色值,颜色值需要定义在xml中
myRefreshListView.setColorScheme(R.color.blue,
R.color.green, R.color.red,
R.color.yellow);
// 设置下拉刷新监听器
myRefreshListView.setOnRefreshListener(new SwipeRefreshLayoutLoad2.OnRefreshListener() {
@Override
public void onRefresh() {
Toast.makeText(getActivity(), "refresh", Toast.LENGTH_SHORT).show();
myRefreshListView.postDelayed(new Runnable() {
@Override
public void run() {
// 更新数据
// datas.add(new Date().toGMTString());
adapter.notifyDataSetChanged();
// 更新完后调用该方法结束刷新
myRefreshListView.setRefreshing(false);
}
}, 1000);
}
});
// 加载监听器
myRefreshListView.setOnLoadListener(new SwipeRefreshLayoutLoad2.OnLoadListener() {
@Override
public void onLoad() {
Toast.makeText(getActivity(), "load", Toast.LENGTH_SHORT).show();
myRefreshListView.postDelayed(new Runnable() {
@Override
public void run() {
datas.add(new Date().toGMTString());
adapter.notifyDataSetChanged();
// 加载完后调用该方法
myRefreshListView.setLoading(false);
}
}, 1500);
}
});
}
}