This commit is contained in:
2023-09-28 18:28:28 +08:00
parent 2976177e92
commit 2602725320
60 changed files with 1989 additions and 157 deletions

View File

@@ -0,0 +1,117 @@
package com.shayu.onetoone.adapter;
import android.content.Context;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.MsgGreetConfigBean;
import com.yunbao.common.interfaces.OnItemClickListener;
import java.util.ArrayList;
import java.util.List;
public class MsgGreetConfigAdapter extends RecyclerView.Adapter<MsgGreetConfigAdapter.ViewHolder> {
List<MsgGreetConfigBean> mList;
Context mContext;
OnItemClickListener<Integer> deleteListener;
public MsgGreetConfigAdapter(Context mContext) {
this.mContext = mContext;
this.mList = new ArrayList<>();
}
public void setList(List<MsgGreetConfigBean> mList) {
this.mList = mList;
notifyDataSetChanged();
}
public void setDeleteListener(OnItemClickListener<Integer> deleteListener) {
this.deleteListener = deleteListener;
}
public List<MsgGreetConfigBean> getNotEmptyList() {
List<MsgGreetConfigBean> tmp = new ArrayList<>();
for (MsgGreetConfigBean bean : mList) {
if (bean.getContent() != null) {
tmp.add(bean);
}
}
return tmp;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
return new ViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_msg_greet_config, viewGroup, false));
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
viewHolder.setData(mList.get(i), i);
}
@Override
public int getItemCount() {
return mList.size();
}
public void addItem(MsgGreetConfigBean msgGreetConfigBean) {
mList.add(msgGreetConfigBean);
notifyDataSetChanged();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private EditText editText;
private View edit;
private View del;
public ViewHolder(@NonNull View itemView) {
super(itemView);
editText = itemView.findViewById(R.id.editTextText);
edit = itemView.findViewById(R.id.edit);
del = itemView.findViewById(R.id.del);
editText.setEnabled(false);
}
public void setData(MsgGreetConfigBean bean, int position) {
del.setOnClickListener(v -> {
mList.remove(position);
if (deleteListener != null) {
deleteListener.onItemClick(mList.size(), position);
}
notifyDataSetChanged();
});
edit.setOnClickListener(v -> {
editText.setEnabled(true);
editText.requestFocus();
});
if (bean.getContent() == null) {
editText.setEnabled(true);
editText.setText("");
} else {
editText.setText(bean.getContent());
editText.setEnabled(false);
}
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
Log.i("编辑", "onFocusChange: " + hasFocus);
if (!hasFocus && editText.getText().toString().length() > 0) {
mList.get(position).setContent(editText.getText().toString());
editText.setEnabled(false);
}
}
});
}
}
}

View File

@@ -0,0 +1,81 @@
package com.shayu.onetoone.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.MsgMessageBean;
import com.yunbao.common.glide.ImgLoader;
import java.util.List;
public class MsgMessageRecyclerViewAdapter extends RecyclerView.Adapter<MsgMessageRecyclerViewAdapter.ViewHolder> {
List<MsgMessageBean> list;
Context mContext;
public MsgMessageRecyclerViewAdapter(Context mContext) {
this.mContext = mContext;
}
public void setList(List<MsgMessageBean> list) {
this.list = list;
notifyDataSetChanged();
}
public List<MsgMessageBean> getList() {
return list;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_msg_message, parent, false));
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.setData(list.get(position), position);
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
ImageView avatar;
TextView name;
TextView content;
TextView time;
TextView read;
public ViewHolder(@NonNull View itemView) {
super(itemView);
avatar = itemView.findViewById(R.id.msg_message_avatar);
name = itemView.findViewById(R.id.msg_message_title);
content = itemView.findViewById(R.id.msg_message_content);
time = itemView.findViewById(R.id.msg_message_content_time);
read = itemView.findViewById(R.id.msg_message_content_not_read);
}
public void setData(MsgMessageBean bean, int position) {
if (bean.isNotRead()) {
read.setVisibility(View.VISIBLE);
read.setText(bean.getNotReadNum() + "");
} else {
read.setVisibility(View.GONE);
}
ImgLoader.display(mContext, bean.getAvatar(), avatar);
name.setText(bean.getNickname());
content.setText(bean.getContent());
time.setText(String.format("·%s", bean.getTime()));
}
}
}