카톡만들기
public class MainActivity extends AppCompatActivity {
Button btn_send;
ArrayList<DirectVO> datas;
RecyclerView rv_main;
DirectAdapter adapter;
EditText edt_content;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
btn_send = findViewById(R.id.btn_send);
rv_main = findViewById(R.id.rv_main);
edt_content = findViewById(R.id.edt_content);
int[] imgs= new int[]{R.drawable.img01,R.drawable.img02,R.drawable.img03,R.drawable.img04,
R.drawable.img05};
Random rd = new Random();
datas = new ArrayList<>();
datas.add(new DirectVO("박진영1","안녕하세요","오후 4:23",imgs[0]));
datas.add(new DirectVO("박진영2","ㅎㅇ","오후 4:25",imgs[1]));
datas.add(new DirectVO("박진영3","ㅇㅇ","오후 4:26",imgs[2]));
datas.add(new DirectVO("박진영4","ㅇ","오후 4:28",imgs[3]));
datas.add(new DirectVO("박진영5","확인","오후 4:32",imgs[4]));
String my = "박진영1";
adapter =new DirectAdapter(datas,getApplicationContext(),my);
rv_main.setAdapter(adapter);
rv_main.setLayoutManager(new LinearLayoutManager(this));
btn_send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int img = rd.nextInt(5);
long mNow = System.currentTimeMillis();
Date mReDate = new Date(mNow);
SimpleDateFormat sdf = new SimpleDateFormat("a hh:mm",Locale.KOREA);
String getTime = sdf.format(mReDate);
String name = "박진영1";
String content = edt_content.getText().toString();
String time = getTime;
datas.add(new DirectVO(name,content,time,imgs[img]));
rv_main.smoothScrollToPosition(datas.size()-1);
}
});
}
}
==================
public class DirectViewHolder extends RecyclerView.ViewHolder {
ImageView img;
TextView tv_name,tv_content,tv_time;
TextView tv_mymsg;
TextView tv_mytime;
public DirectViewHolder(@NonNull View itemView) {
super(itemView);
img=itemView.findViewById(R.id.img);
tv_name=itemView.findViewById(R.id.tv_name);
tv_content=itemView.findViewById(R.id.tv_content);
tv_time=itemView.findViewById(R.id.tv_time);
tv_mymsg = itemView.findViewById(R.id.tv_mymsg);
tv_mytime = itemView.findViewById(R.id.tv_mytime);
}
}
=======================
public class DirectAdapter extends RecyclerView.Adapter<DirectViewHolder> {
private ArrayList<DirectVO> datas;
private Context context;
private String my;
public DirectAdapter(ArrayList<DirectVO> datas, Context context, String my) {
this.datas = datas;
this.context = context;
this.my = my;
}
@NonNull
@Override
public DirectViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
DirectViewHolder holder =new DirectViewHolder(
LayoutInflater.from(parent.getContext()).inflate(R.layout.templete,parent,false)
);
return holder;
}
@Override
public void onBindViewHolder(@NonNull DirectViewHolder holder, int position) {
if (datas.get(position).getName().equals(my)){
holder.tv_mymsg.setVisibility(View.VISIBLE);
holder.tv_mytime.setVisibility(View.VISIBLE);
holder.tv_name.setVisibility(View.GONE);
holder.tv_time.setVisibility(View.GONE);
holder.tv_content.setVisibility(View.GONE);
holder.img.setVisibility(View.GONE);
holder.tv_mymsg.setText(datas.get(position).getContent());
holder.tv_mytime.setText(datas.get(position).getTime());
}else {
holder.tv_mymsg.setVisibility(View.GONE);
holder.tv_mytime.setVisibility(View.GONE);
holder.tv_name.setVisibility(View.VISIBLE);
holder.tv_time.setVisibility(View.VISIBLE);
holder.tv_content.setVisibility(View.VISIBLE);
holder.img.setVisibility(View.VISIBLE);
holder.img.setImageResource(datas.get(position).getImg());
holder.tv_content.setText(datas.get(position).getContent());
holder.tv_name.setText(datas.get(position).getName());
holder.tv_time.setText(datas.get(position).getTime());
}
}
@Override
public int getItemCount() {
return datas.size();
}
}