Android文本視圖TextView實(shí)現(xiàn)聊天室效果
本文實(shí)例為大家分享了Android文本視圖TextView實(shí)現(xiàn)聊天室的具體代碼,供大家參考,具體內(nèi)容如下
Math.random()生成隨機(jī)數(shù)的范圍是 0 到 1 之間的
日期時(shí)間格式new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); //年-月-日 時(shí):分:秒 ; HH大寫24小時(shí),
String類的format()方法用于創(chuàng)建格式化的字符串以及連接多個(gè)字符串對(duì)象。
MainActivity
package com.example.junior;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.text.method.ScrollingMovementMethod;
import android.view.Gravity;
import android.view.View;
import android.widget.TextView;
import com.example.junior.util.DateUtil;
public class BbsActivity extends AppCompatActivity implements
View.OnClickListener, View.OnLongClickListener {
private TextView tv_bbs; // 聲明一個(gè)文本視圖對(duì)象
private TextView tv_control; // 聲明一個(gè)文本視圖對(duì)象
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bbs);
// 從布局文件中獲取名叫tv_control的文本視圖
tv_control = findViewById(R.id.tv_control);
// 給tv_control設(shè)置點(diǎn)擊監(jiān)聽器
tv_control.setOnClickListener(this);
// 給tv_control設(shè)置長按監(jiān)聽器
tv_control.setOnLongClickListener(this);
// 從布局文件中獲取名叫tv_bbs的文本視圖
tv_bbs = findViewById(R.id.tv_bbs);
// 給tv_bbs設(shè)置點(diǎn)擊監(jiān)聽器
tv_bbs.setOnClickListener(this);
// 給tv_bbs設(shè)置長按監(jiān)聽器
tv_bbs.setOnLongClickListener(this);
// 設(shè)置tv_bbs內(nèi)部文字的對(duì)齊方式為靠左且靠下
tv_bbs.setGravity(Gravity.LEFT | Gravity.BOTTOM);
// 設(shè)置tv_bbs高度為八行文字那么高
tv_bbs.setLines(8);
// 設(shè)置tv_bbs最多顯示八行文字
tv_bbs.setMaxLines(8);
// 設(shè)置tv_bbs內(nèi)部文本的移動(dòng)方式為滾動(dòng)形式
tv_bbs.setMovementMethod(new ScrollingMovementMethod());
}
private String[] mChatStr = {"你吃飯了嗎?", "今天天氣真好呀。",
"我中獎(jiǎng)啦!", "我們?nèi)タ措娪鞍?, "晚上干什么好呢?",};
@Override
public void onClick(View v) {
if (v.getId() == R.id.tv_control || v.getId() == R.id.tv_bbs) {
// 生成一個(gè)0到4之間的隨機(jī)數(shù)
int random = (int) (Math.random() * 10) % 5;
// 拼接聊天的文本內(nèi)容
String newStr = String.format("%s\n%s %s",
tv_bbs.getText().toString(), DateUtil.getNowTime(), mChatStr[random]);
// 設(shè)置文本視圖tv_bbs的文本內(nèi)容
tv_bbs.setText(newStr);
}
}
@Override
public boolean onLongClick(View v) {
if (v.getId() == R.id.tv_control || v.getId() == R.id.tv_bbs) {
tv_bbs.setText("");
}
return true;
}
}
layout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- 這是普通的文本視圖 -->
<TextView
android:id="@+id/tv_control"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="center"
android:text="聊天室效果,點(diǎn)擊添加聊天記錄,長按刪除聊天記錄" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="vertical">
<!-- 這是聊天室的文本視圖,scrollbars屬性設(shè)置為vertical表示在垂直方向上顯示滾動(dòng)條 -->
<TextView
android:id="@+id/tv_bbs"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="20dp"
android:gravity="left|bottom"
android:lines="8"
android:maxLines="8"
android:scrollbars="vertical"
android:textColor="#000000"
android:textSize="17sp" />
</LinearLayout>
</LinearLayout>
DataUtil
package com.example.junior.util;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
public static String getNowDateTime() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
return sdf.format(new Date());
}
public static String getNowTime() {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
return sdf.format(new Date());
}
}
result

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Andorid基于ZXing實(shí)現(xiàn)二維碼生成與掃描的示例代碼
ZXing是一個(gè)開源的條碼和二維碼掃描庫,它可以用于Android開發(fā)中,通過ZXing庫可以實(shí)現(xiàn)Android設(shè)備上的條碼和二維碼掃描功能,開發(fā)者可以輕松地在Android應(yīng)用中集成條碼和二維碼掃描功能,本文主要給大家介紹了Andorid?ZXing實(shí)現(xiàn)二維碼,感興趣的朋友可以參考下2023-08-08
Android 線程優(yōu)化知識(shí)點(diǎn)學(xué)習(xí)
這篇文章主要為大家介紹了Android線程優(yōu)化知識(shí)點(diǎn)學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
Android中EditText的drawableRight屬性設(shè)置點(diǎn)擊事件
這篇文章主要介紹了Android中EditText的drawableRight屬性的圖片設(shè)置點(diǎn)擊事件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
Android 配置gradle實(shí)現(xiàn)VersionCode自增實(shí)例
今天小編就為大家分享一篇Android 配置gradle實(shí)現(xiàn)VersionCode自增實(shí)例,具有很好的 參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Spi機(jī)制在Android開發(fā)的應(yīng)用示例詳解
這篇文章主要為大家介紹了Spi機(jī)制在Android開發(fā)的應(yīng)用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

