d
This commit is contained in:
231
app/src/main/java/com/fenghoo/seven/test/BaseFragment.java
Normal file
231
app/src/main/java/com/fenghoo/seven/test/BaseFragment.java
Normal file
@@ -0,0 +1,231 @@
|
||||
package com.fenghoo.seven.test;
|
||||
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.util.Log;
|
||||
import android.util.TypedValue;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.fenghoo.seven.R;
|
||||
|
||||
import androidx.annotation.IdRes;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
|
||||
/**
|
||||
* 日期:2017.01.03
|
||||
* <p>
|
||||
* 作者:xudiwei
|
||||
* <p>
|
||||
* 描述:BaseFragment添加了相关常用的方法。
|
||||
*/
|
||||
public class BaseFragment extends Fragment {
|
||||
|
||||
private static final String TAG = "BaseFragment";
|
||||
protected Context mContext;
|
||||
protected Activity mActivity;
|
||||
private ProgressDialog mProgressDialog;
|
||||
private boolean isVisible;
|
||||
|
||||
public BaseFragment() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
mContext = context;
|
||||
mActivity = getActivity();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setUserVisibleHint(boolean isVisibleToUser) {
|
||||
super.setUserVisibleHint(isVisibleToUser);
|
||||
if (isVisibleToUser && !isVisible) {
|
||||
isVisible = true;
|
||||
onVisible();
|
||||
} else {
|
||||
if (isVisible) {
|
||||
isVisible = false;
|
||||
onInvisible();
|
||||
}
|
||||
}
|
||||
Log.d(TAG, "setUserVisibleHint: " + isVisibleToUser);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (!isVisible) {
|
||||
isVisible = true;
|
||||
onVisible();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
if (isVisible) {
|
||||
isVisible = false;
|
||||
onInvisible();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fragment可见时
|
||||
*/
|
||||
protected void onVisible() {
|
||||
Log.d(TAG, "onVisible");
|
||||
}
|
||||
|
||||
/**
|
||||
* Fragment不可见时
|
||||
*/
|
||||
protected void onInvisible() {
|
||||
Log.d(TAG, "onInvisible");
|
||||
}
|
||||
|
||||
/**
|
||||
* toast
|
||||
*
|
||||
* @param msg 吐丝的内容
|
||||
*/
|
||||
public void toast(String msg) {
|
||||
Toast.makeText(mContext, msg, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
/**
|
||||
* toast
|
||||
*
|
||||
* @param ids 吐丝的内容的字符串ids
|
||||
*/
|
||||
public void toast(@StringRes int ids) {
|
||||
toast(getString(ids));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 线程安全的toast
|
||||
*
|
||||
* @param msg
|
||||
*/
|
||||
public void toastThreadSafe(final String msg) {
|
||||
if (null != mActivity) {
|
||||
mActivity.runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
toast(msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 线程安全的toast
|
||||
*
|
||||
* @param ids
|
||||
*/
|
||||
public void toastThreadSafe(@StringRes final int ids) {
|
||||
if (null != mActivity) {
|
||||
mActivity.runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
toast(ids);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 开启一个Activity
|
||||
*
|
||||
* @param clz 需要开启的Activity
|
||||
*/
|
||||
public void startActivity(Class<? extends Activity> clz) {
|
||||
if (null != mContext) {
|
||||
startActivity(new Intent(mContext, clz));
|
||||
// getActivity().overridePendingTransition(R.anim.trans_next_in,R.anim.trans_next_out);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 开启一个Activity,并finish掉当前的Activity
|
||||
*
|
||||
* @param clz
|
||||
*/
|
||||
public void startActivityAndFinishSelf(Class<? extends Activity> clz) {
|
||||
if (null != mActivity) {
|
||||
startActivity(clz);
|
||||
mActivity.finish();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化进度对话框
|
||||
*/
|
||||
protected void showProgressDialog(String dialogMessage) {
|
||||
mProgressDialog = new ProgressDialog(mContext);
|
||||
mProgressDialog.setCanceledOnTouchOutside(false);
|
||||
mProgressDialog.setMessage(dialogMessage);
|
||||
mProgressDialog.show();
|
||||
}
|
||||
//
|
||||
// @Override
|
||||
// public void onHiddenChanged(boolean hidden) {
|
||||
// super.onHiddenChanged(hidden);
|
||||
// Log.d(TAG, "onHiddenChanged: "+hidden);
|
||||
// isVisible = !hidden;
|
||||
// if(isVisible){
|
||||
// onVisible();
|
||||
// }else {
|
||||
// onInvisible();
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* 关闭进度对话框
|
||||
*/
|
||||
protected void dismissProgressDialog() {
|
||||
if (null != mProgressDialog && mProgressDialog.isShowing()) {
|
||||
mProgressDialog.dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化刷新控件的参数
|
||||
*
|
||||
* @param ids 刷新控件的id
|
||||
*/
|
||||
protected SwipeRefreshLayout setSwipeRefreshLayout(@IdRes int ids) {
|
||||
SwipeRefreshLayout mRefreshLayout = (SwipeRefreshLayout) getView().findViewById(ids);
|
||||
mRefreshLayout.setProgressViewOffset(false, 0,
|
||||
(int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, getResources().getDisplayMetrics()));
|
||||
mRefreshLayout.setColorSchemeResources(R.color.colorGreen);
|
||||
return mRefreshLayout;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 隐藏键盘
|
||||
*/
|
||||
public void hideKB() {
|
||||
// if (null != mContext && mContext instanceof BaseActivity) {
|
||||
// ((BaseActivity) mContext).hintKb();
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
13
app/src/main/java/com/fenghoo/seven/test/BaseModel.java
Normal file
13
app/src/main/java/com/fenghoo/seven/test/BaseModel.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package com.fenghoo.seven.test;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @description 实体基类
|
||||
* @author fangyan
|
||||
* @date 2015年8月1日
|
||||
*/
|
||||
public class BaseModel implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.fenghoo.seven.test;
|
||||
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
|
||||
/**
|
||||
* 日期:2017.01.03
|
||||
* <p>
|
||||
* 作者:xudiwei
|
||||
* <p>
|
||||
* 描述:所有MVP模式的Fragment的父类,处理了在MVP里有可能造成内存泄漏的可能
|
||||
*/
|
||||
public abstract class BaseMvpFragment<V, P extends BasePresenter<V>> extends BaseFragment {
|
||||
|
||||
private static final String TAG = "BaseMvpFragment";
|
||||
protected P mPresenter;
|
||||
|
||||
public BaseMvpFragment() {
|
||||
// Required empty public constructor
|
||||
Log.d(TAG, "constructor");
|
||||
mPresenter = createPresenter();
|
||||
mPresenter.attach((V) this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
mPresenter.detach();
|
||||
}
|
||||
|
||||
/**
|
||||
* 子类复写此方法,返回BasePresenter的子类
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
protected abstract P createPresenter();
|
||||
|
||||
}
|
||||
47
app/src/main/java/com/fenghoo/seven/test/BasePresenter.java
Normal file
47
app/src/main/java/com/fenghoo/seven/test/BasePresenter.java
Normal file
@@ -0,0 +1,47 @@
|
||||
package com.fenghoo.seven.test;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
/**
|
||||
* 日期:2017.01.03
|
||||
* <p>
|
||||
* 作者:xudiwei
|
||||
* <p>
|
||||
* 描述:所有Presenter的父类,处理了在MVP里有可能造成内存泄漏的可能
|
||||
*/
|
||||
public class BasePresenter<V> {
|
||||
|
||||
private WeakReference<V> mReference;
|
||||
|
||||
/**
|
||||
* 调用此方法添加View的引用到一个弱引用里
|
||||
*
|
||||
* @param v
|
||||
*/
|
||||
public void attach(V v) {
|
||||
mReference = new WeakReference<V>(v);
|
||||
}
|
||||
|
||||
/**
|
||||
* 调用此方法移除View的引用
|
||||
*/
|
||||
public void detach() {
|
||||
if (null != mReference) {
|
||||
mReference.clear();
|
||||
mReference = null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取View对象
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public V getView() {
|
||||
if (null != mReference) {
|
||||
return mReference.get();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,213 @@
|
||||
package com.fenghoo.seven.test;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.fenghoo.seven.R;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
/**
|
||||
* Created by Administrator on 2016/12/26.
|
||||
* <p>
|
||||
* 作者:xudiwei
|
||||
* <p>
|
||||
* 描述:RecyclerView的BaseAdapter
|
||||
*/
|
||||
|
||||
public abstract class BaseRecyclerViewAdapter<T> extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
/*普通的item类型*/
|
||||
protected static final int ITEM_TYPE_NORMAL = 0;
|
||||
/*加载更多的item类型*/
|
||||
protected static final int ITEM_TYPE_LOAD_MORE = -1;
|
||||
private static final String TAG = "BaseRecyclerViewAdapter";
|
||||
/*每页数据条数*/
|
||||
public int limit = 10;
|
||||
protected Context mContext;
|
||||
protected List<T> mList;
|
||||
/*item点击监听器*/
|
||||
protected OnItemClickListener mListener;
|
||||
/*是否还有更多数据可加载*/
|
||||
private boolean hasLoadMore = true;
|
||||
|
||||
|
||||
public BaseRecyclerViewAdapter(Context context, List<T> list) {
|
||||
this.mContext = context;
|
||||
this.mList = list;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置每页条数
|
||||
*
|
||||
* @param limit
|
||||
*/
|
||||
public void setLimit(int limit) {
|
||||
this.limit = limit;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新数据
|
||||
*
|
||||
* @param list
|
||||
* @deprecated
|
||||
*/
|
||||
public void upData(List<T> list) {
|
||||
this.mList = list;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
/**
|
||||
* 追加数据并更新
|
||||
*
|
||||
* @param list
|
||||
* @deprecated
|
||||
*/
|
||||
public void upDataAdd(List<T> list) {
|
||||
if (list != null) {
|
||||
mList.addAll(list);
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
if (viewType == ITEM_TYPE_LOAD_MORE) {
|
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.item_load_more, parent, false);
|
||||
return new LoadMoreViewHolder(view);
|
||||
} else {
|
||||
return onCreateViewHolderNormalItem(parent, viewType);
|
||||
}
|
||||
|
||||
// if (viewType == ITEM_TYPE_NORMAL) {
|
||||
// return onCreateViewHolderNormalItem(parent, viewType);
|
||||
// } else {
|
||||
// View view = LayoutInflater.from(mContext).inflate(R.layout.item_load_more, parent, false);
|
||||
// return new LoadMoreViewHolder(view);
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
|
||||
if (position == mList.size()) {
|
||||
//bind load more view
|
||||
LoadMoreViewHolder loadMoreViewHolder = ((LoadMoreViewHolder) holder);
|
||||
if (hasLoadMore) {
|
||||
loadMoreViewHolder.tvLoadMore.setText("sdfds");
|
||||
} else {
|
||||
loadMoreViewHolder.tvLoadMore.setText("sdfds");
|
||||
}
|
||||
} else {
|
||||
//bind normal view
|
||||
onBindViewHolderNormalItem(holder, position);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 填充普通的item数据
|
||||
*
|
||||
* @param holder
|
||||
* @param position
|
||||
*/
|
||||
public abstract void onBindViewHolderNormalItem(RecyclerView.ViewHolder holder, int position);
|
||||
|
||||
/**
|
||||
* 创建普通的item view holder
|
||||
*
|
||||
* @param parent
|
||||
* @param viewType
|
||||
* @return
|
||||
*/
|
||||
public abstract RecyclerView.ViewHolder onCreateViewHolderNormalItem(ViewGroup parent, int viewType);
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
//只有集合不为空的情况下才默认添加最后一条加载更多的布局item
|
||||
if (mList == null) {
|
||||
return 0;
|
||||
} else {
|
||||
//数据小于limit条时不显示加载更多
|
||||
if (mList.size() < limit) {
|
||||
return mList.size();
|
||||
} else {
|
||||
return mList.size() + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position == mList.size()) {
|
||||
return ITEM_TYPE_LOAD_MORE;
|
||||
}
|
||||
return ITEM_TYPE_NORMAL;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知数据改变,通过调用此方法实现数据改变刷新
|
||||
*
|
||||
* @param hasLoadMore 是否还有更多数据加载,true表示为有更多数据
|
||||
* 这时滑到最后一条item显示的是“加载更多中” 当为false
|
||||
* 表示没有更多数据了。这时滑到最后一条item.显示“没有更多数据了”
|
||||
*/
|
||||
public void myNotifyDataSetChanged(boolean hasLoadMore) {
|
||||
this.hasLoadMore = hasLoadMore;
|
||||
this.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
/**
|
||||
* ItemView点击
|
||||
*
|
||||
* @param normalItemView
|
||||
* @param viewHolder
|
||||
*/
|
||||
protected void setItemClick(final View normalItemView, final RecyclerView.ViewHolder viewHolder) {
|
||||
if (null != mListener) {
|
||||
normalItemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mListener.onItemClick(normalItemView, viewHolder.getLayoutPosition());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置item点击事件监听器
|
||||
*
|
||||
* @param listener
|
||||
*/
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.mListener = listener;
|
||||
}
|
||||
|
||||
/**
|
||||
* item点击事件回调接口{@link #setOnItemClickListener(OnItemClickListener)}
|
||||
*/
|
||||
public interface OnItemClickListener {
|
||||
void onItemClick(View view, int position);
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载更多的ViewHolder
|
||||
*/
|
||||
private class LoadMoreViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView tvLoadMore;
|
||||
|
||||
public LoadMoreViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
tvLoadMore = (TextView) itemView.findViewById(R.id.tv_loadmore);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,222 @@
|
||||
package com.fenghoo.seven.test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by: xudiwei
|
||||
* <p>
|
||||
* on: 2017/5/9.
|
||||
* <p>
|
||||
* 描述:社群消息实体类
|
||||
*/
|
||||
|
||||
public class CommunityMessageBean {
|
||||
|
||||
//系统消息
|
||||
private List<MsgBean> systemMsg;
|
||||
//邀请消息
|
||||
private List<MsgBean> inviteMsg;
|
||||
//审核消息
|
||||
private List<MsgBean> checkMsg;
|
||||
|
||||
public List<MsgBean> getSystemMsg() {
|
||||
return systemMsg;
|
||||
}
|
||||
|
||||
public void setSystemMsg(List<MsgBean> systemMsg) {
|
||||
this.systemMsg = systemMsg;
|
||||
}
|
||||
|
||||
public List<MsgBean> getInviteMsg() {
|
||||
return inviteMsg;
|
||||
}
|
||||
|
||||
public void setInviteMsg(List<MsgBean> inviteMsg) {
|
||||
this.inviteMsg = inviteMsg;
|
||||
}
|
||||
|
||||
public List<MsgBean> getCheckMsg() {
|
||||
return checkMsg;
|
||||
}
|
||||
|
||||
public void setCheckMsg(List<MsgBean> checkMsg) {
|
||||
this.checkMsg = checkMsg;
|
||||
}
|
||||
|
||||
public static class MsgBean {
|
||||
|
||||
/**
|
||||
* rcd_id : 129
|
||||
* key_id : 129
|
||||
* user_id : 0
|
||||
* nick_name :
|
||||
* user_identify : 0
|
||||
* group_id : 1
|
||||
* group_name : 听说iOS很牛逼?
|
||||
* im_group_id : ab97e028a5aae8d637cb1a70569638d7
|
||||
* squad_id : 0
|
||||
* squad_name :
|
||||
* squad_im_group_id : 0
|
||||
* img : /Uploads/app_class_img/info_page_size/20170519/591eb5f8cf821.png
|
||||
* title : null
|
||||
* content : 申请加入
|
||||
* msg_type : 6
|
||||
* status : 1
|
||||
* add_time : 1495166305
|
||||
*/
|
||||
|
||||
private String rcd_id;
|
||||
private String key_id;
|
||||
private int user_id;
|
||||
private String nick_name;
|
||||
private String user_identify;
|
||||
private String group_id;
|
||||
private String group_name;
|
||||
private String im_group_id;
|
||||
private int squad_id;
|
||||
private String squad_name;
|
||||
private String squad_im_group_id;
|
||||
private String img;
|
||||
private String title;
|
||||
private String content;
|
||||
private int msg_type;
|
||||
private String status;
|
||||
private String add_time;
|
||||
|
||||
public String getRcd_id() {
|
||||
return rcd_id;
|
||||
}
|
||||
|
||||
public void setRcd_id(String rcd_id) {
|
||||
this.rcd_id = rcd_id;
|
||||
}
|
||||
|
||||
public String getKey_id() {
|
||||
return key_id;
|
||||
}
|
||||
|
||||
public void setKey_id(String key_id) {
|
||||
this.key_id = key_id;
|
||||
}
|
||||
|
||||
public int getUser_id() {
|
||||
return user_id;
|
||||
}
|
||||
|
||||
public void setUser_id(int user_id) {
|
||||
this.user_id = user_id;
|
||||
}
|
||||
|
||||
public String getNick_name() {
|
||||
return nick_name;
|
||||
}
|
||||
|
||||
public void setNick_name(String nick_name) {
|
||||
this.nick_name = nick_name;
|
||||
}
|
||||
|
||||
public String getUser_identify() {
|
||||
return user_identify;
|
||||
}
|
||||
|
||||
public void setUser_identify(String user_identify) {
|
||||
this.user_identify = user_identify;
|
||||
}
|
||||
|
||||
public String getGroup_id() {
|
||||
return group_id;
|
||||
}
|
||||
|
||||
public void setGroup_id(String group_id) {
|
||||
this.group_id = group_id;
|
||||
}
|
||||
|
||||
public String getGroup_name() {
|
||||
return group_name;
|
||||
}
|
||||
|
||||
public void setGroup_name(String group_name) {
|
||||
this.group_name = group_name;
|
||||
}
|
||||
|
||||
public String getIm_group_id() {
|
||||
return im_group_id;
|
||||
}
|
||||
|
||||
public void setIm_group_id(String im_group_id) {
|
||||
this.im_group_id = im_group_id;
|
||||
}
|
||||
|
||||
public int getSquad_id() {
|
||||
return squad_id;
|
||||
}
|
||||
|
||||
public void setSquad_id(int squad_id) {
|
||||
this.squad_id = squad_id;
|
||||
}
|
||||
|
||||
public String getSquad_name() {
|
||||
return squad_name;
|
||||
}
|
||||
|
||||
public void setSquad_name(String squad_name) {
|
||||
this.squad_name = squad_name;
|
||||
}
|
||||
|
||||
public String getSquad_im_group_id() {
|
||||
return squad_im_group_id;
|
||||
}
|
||||
|
||||
public void setSquad_im_group_id(String squad_im_group_id) {
|
||||
this.squad_im_group_id = squad_im_group_id;
|
||||
}
|
||||
|
||||
public String getImg() {
|
||||
return img;
|
||||
}
|
||||
|
||||
public void setImg(String img) {
|
||||
this.img = img;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
public int getMsg_type() {
|
||||
return msg_type;
|
||||
}
|
||||
|
||||
public void setMsg_type(int msg_type) {
|
||||
this.msg_type = msg_type;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getAdd_time() {
|
||||
return add_time;
|
||||
}
|
||||
|
||||
public void setAdd_time(String add_time) {
|
||||
this.add_time = add_time;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.fenghoo.seven.test;
|
||||
|
||||
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by: xudiwei
|
||||
* <p>
|
||||
* on: 2017/5/9.
|
||||
* <p>
|
||||
* 描述::邀请消息Fragment的presenter接口
|
||||
*/
|
||||
public interface IInviteMessagePresenter {
|
||||
|
||||
/**
|
||||
* 获取邀请消息刷新
|
||||
*/
|
||||
void getInviteMessageRefresh(getstore inviteMessages);
|
||||
|
||||
/**
|
||||
* 获取邀请消息加载更多
|
||||
*/
|
||||
void getInviteMessageLoadMore(List<CommunityMessageBean.MsgBean> inviteMessages);
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.fenghoo.seven.test;
|
||||
|
||||
/**
|
||||
* Created by: xudiwei
|
||||
* <p>
|
||||
* on: 2017/5/9.
|
||||
* <p>
|
||||
* 描述::邀请消息Fragment的 view接口
|
||||
*/
|
||||
public interface IInviteMessageView {
|
||||
|
||||
/**
|
||||
* 获取消息结果回调
|
||||
* @param isSuccess 获取消息是否成功
|
||||
* @param hasMore 是还可加载更多
|
||||
* @param errorMsg 错误信息
|
||||
*/
|
||||
void getMessageResult(boolean isSuccess, boolean hasMore, String errorMsg);
|
||||
|
||||
void showTextview(getstore inviteMessages);
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.fenghoo.seven.test;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.fenghoo.seven.R;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
|
||||
/**
|
||||
* Created by: xudiwei
|
||||
* <p>
|
||||
* on: 2017/5/9.
|
||||
* <p>
|
||||
* 描述:邀请消息列表适配器
|
||||
* @deprecated
|
||||
*/
|
||||
|
||||
public class InviteMessageAdapter extends BaseRecyclerViewAdapter<CommunityMessageBean.MsgBean> {
|
||||
private static final String TAG = "InviteMessageAdapter";
|
||||
|
||||
public InviteMessageAdapter(Context context, List<CommunityMessageBean.MsgBean> list) {
|
||||
super(context, list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolderNormalItem(RecyclerView.ViewHolder holder, int position) {
|
||||
AddFriendMessageViewHolder viewHolder = (AddFriendMessageViewHolder) holder;
|
||||
CommunityMessageBean.MsgBean msgBean = mList.get(position);
|
||||
viewHolder.tvNickname.setText(msgBean.getNick_name());
|
||||
viewHolder.tvReason.setText(msgBean.getContent());
|
||||
Log.d(TAG, "msg: " + msgBean.getImg());
|
||||
}
|
||||
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolderNormalItem(ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.item_rv_add_friend_message, parent, false);
|
||||
return new AddFriendMessageViewHolder(view);
|
||||
}
|
||||
|
||||
private class AddFriendMessageViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView tvNickname;
|
||||
TextView tvReason;
|
||||
TextView tvAccept;
|
||||
TextView tvReject;
|
||||
|
||||
|
||||
AddFriendMessageViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
tvNickname = (TextView) itemView.findViewById(R.id.tv_nickname);
|
||||
tvReason = (TextView) itemView.findViewById(R.id.tv_reason);
|
||||
tvAccept = (TextView) itemView.findViewById(R.id.tv_accept);
|
||||
tvReject = (TextView) itemView.findViewById(R.id.tv_reject);
|
||||
}
|
||||
}
|
||||
}
|
||||
174
app/src/main/java/com/fenghoo/seven/test/RLListPager.java
Normal file
174
app/src/main/java/com/fenghoo/seven/test/RLListPager.java
Normal file
@@ -0,0 +1,174 @@
|
||||
package com.fenghoo.seven.test;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.TypedValue;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import com.fenghoo.seven.R;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
|
||||
/**
|
||||
* 日期:2017.01.21
|
||||
* <p>
|
||||
* 作者:xudiwei
|
||||
* <p>
|
||||
* 描述:SwipeRefreshLayout 与RecyclerView的组合控件
|
||||
*/
|
||||
public class RLListPager extends FrameLayout {
|
||||
|
||||
private static final String TAG = "RLListPager";
|
||||
|
||||
private SwipeRefreshLayout mRefreshLayout;
|
||||
private RecyclerView mRecyclerView;
|
||||
private OnRLRefreshAndLoadMoreListener mListener;
|
||||
private int loadMoreLimit = 5;
|
||||
|
||||
public RLListPager(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public RLListPager(Context context, AttributeSet attrs) {
|
||||
this(context, attrs, 0);
|
||||
}
|
||||
|
||||
public RLListPager(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
initView();
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
//刷新布局
|
||||
mRefreshLayout = new SwipeRefreshLayout(getContext());
|
||||
mRefreshLayout.setOnRefreshListener(new MyOnRefreshListener());
|
||||
mRefreshLayout.setProgressViewOffset(true, 0,
|
||||
(int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 80, getResources().getDisplayMetrics()));
|
||||
mRefreshLayout.setColorSchemeResources(R.color.colorGreen);
|
||||
|
||||
//列表布局
|
||||
mRecyclerView = new RecyclerView(getContext());
|
||||
mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
mRefreshLayout.addView(mRecyclerView, new SwipeRefreshLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.MATCH_PARENT));
|
||||
|
||||
this.addView(mRefreshLayout, new LayoutParams(LayoutParams.MATCH_PARENT,
|
||||
LayoutParams.MATCH_PARENT));
|
||||
|
||||
mRecyclerView.addOnScrollListener(new MyOnScrollListener());
|
||||
|
||||
}
|
||||
|
||||
public RecyclerView getRecyclerView() {
|
||||
return mRecyclerView;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置适配器
|
||||
*
|
||||
* @param adapter
|
||||
*/
|
||||
public void setAdapter(RecyclerView.Adapter adapter) {
|
||||
mRecyclerView.setAdapter(adapter);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置刷新动画
|
||||
*
|
||||
* @param refreshing
|
||||
*/
|
||||
public void setRefresh(boolean refreshing) {
|
||||
mRefreshLayout.setRefreshing(refreshing);
|
||||
}
|
||||
|
||||
public boolean isRefresh() {
|
||||
return mRefreshLayout.isRefreshing();
|
||||
}
|
||||
|
||||
public int getLoamoreLimit() {
|
||||
return loadMoreLimit;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置触发上拉加载更多的最少item默认为5个item才能触发
|
||||
*
|
||||
* @param loadMoreLimit
|
||||
*/
|
||||
public void setloadmoreLimit(int loadMoreLimit) {
|
||||
this.loadMoreLimit = loadMoreLimit;
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新
|
||||
*/
|
||||
private class MyOnRefreshListener implements SwipeRefreshLayout.OnRefreshListener {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
//刷新布局
|
||||
if (null != mListener) {
|
||||
mListener.onRefresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载更多
|
||||
*/
|
||||
private class MyOnScrollListener extends RecyclerView.OnScrollListener {
|
||||
private LinearLayoutManager mLayoutManager;
|
||||
|
||||
@Override
|
||||
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
||||
super.onScrollStateChanged(recyclerView, newState);
|
||||
|
||||
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
|
||||
if (null == mLayoutManager) {
|
||||
mLayoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
|
||||
}
|
||||
RecyclerView.Adapter adapter = recyclerView.getAdapter();
|
||||
if (null != adapter) {
|
||||
int itemCount = adapter.getItemCount();
|
||||
if (itemCount > loadMoreLimit && mLayoutManager.findLastVisibleItemPosition() == itemCount - 1) {
|
||||
|
||||
//加载更多
|
||||
if (null != mListener) {
|
||||
mListener.onLoadMore();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void scrollToPositionWithOffset(int position,int offset){
|
||||
mRecyclerView.scrollToPosition(position);
|
||||
mRecyclerView.scrollBy(0,offset);
|
||||
|
||||
}
|
||||
|
||||
public void setOnRLRefreshAndLoadMoreListener(OnRLRefreshAndLoadMoreListener listener) {
|
||||
this.mListener = listener;
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新加载更多回调接口
|
||||
*/
|
||||
public interface OnRLRefreshAndLoadMoreListener {
|
||||
|
||||
/**
|
||||
* 下拉刷新时回调
|
||||
*/
|
||||
void onRefresh();
|
||||
|
||||
/**
|
||||
* 上拉加载更多时回调
|
||||
*/
|
||||
void onLoadMore();
|
||||
}
|
||||
}
|
||||
82
app/src/main/java/com/fenghoo/seven/test/getstore.java
Normal file
82
app/src/main/java/com/fenghoo/seven/test/getstore.java
Normal file
@@ -0,0 +1,82 @@
|
||||
package com.fenghoo.seven.test;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 项目名:MenDian
|
||||
* 包名:com.fanghoo.mendian.module.data
|
||||
* 创建者:任剑波
|
||||
* 创建时间:2018/9/9 10:30
|
||||
* 描述:TODO
|
||||
*/
|
||||
public class getstore extends BaseModel {
|
||||
|
||||
/**
|
||||
* status : 0
|
||||
* result : {"success":0,"msg":"获取信息成功","data":[{"store_id":"dd3520f0f40726b849d7cdd7a623e06e","store_name":"店铺3"}]}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* success : 0
|
||||
* msg : 获取信息成功
|
||||
* data : [{"store_id":"dd3520f0f40726b849d7cdd7a623e06e","store_name":"店铺3"}]
|
||||
*/
|
||||
|
||||
private int success;
|
||||
private String msg;
|
||||
private List<DataBean> data;
|
||||
|
||||
public int getSuccess() {
|
||||
return success;
|
||||
}
|
||||
|
||||
public void setSuccess(int success) {
|
||||
this.success = success;
|
||||
}
|
||||
|
||||
public String getMsg() {
|
||||
return msg;
|
||||
}
|
||||
|
||||
public void setMsg(String msg) {
|
||||
this.msg = msg;
|
||||
}
|
||||
|
||||
public List<DataBean> getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(List<DataBean> data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public static class DataBean {
|
||||
/**
|
||||
* store_id : dd3520f0f40726b849d7cdd7a623e06e
|
||||
* store_name : 店铺3
|
||||
*/
|
||||
|
||||
private String store_id;
|
||||
private String store_name;
|
||||
|
||||
public String getStore_id() {
|
||||
return store_id;
|
||||
}
|
||||
|
||||
public void setStore_id(String store_id) {
|
||||
this.store_id = store_id;
|
||||
}
|
||||
|
||||
public String getStore_name() {
|
||||
return store_name;
|
||||
}
|
||||
|
||||
public void setStore_name(String store_name) {
|
||||
this.store_name = store_name;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user