Android文本視圖TextView實現聊天室效果
本文實例為大家分享了Android文本視圖TextView實現聊天室的具體代碼,供大家參考,具體內容如下
Math.random()生成隨機數的范圍是 0 到 1 之間的
日期時間格式new SimpleDateFormat('dd-MM-yyyy HH:mm:ss'); //年-月-日 時:分:秒 ; HH大寫24小時,
String類的format()方法用于創建格式化的字符串以及連接多個字符串對象。
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 implementsView.OnClickListener, View.OnLongClickListener { private TextView tv_bbs; // 聲明一個文本視圖對象 private TextView tv_control; // 聲明一個文本視圖對象 @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設置點擊監聽器tv_control.setOnClickListener(this);// 給tv_control設置長按監聽器tv_control.setOnLongClickListener(this);// 從布局文件中獲取名叫tv_bbs的文本視圖tv_bbs = findViewById(R.id.tv_bbs);// 給tv_bbs設置點擊監聽器tv_bbs.setOnClickListener(this);// 給tv_bbs設置長按監聽器tv_bbs.setOnLongClickListener(this);// 設置tv_bbs內部文字的對齊方式為靠左且靠下tv_bbs.setGravity(Gravity.LEFT | Gravity.BOTTOM);// 設置tv_bbs高度為八行文字那么高tv_bbs.setLines(8);// 設置tv_bbs最多顯示八行文字tv_bbs.setMaxLines(8);// 設置tv_bbs內部文本的移動方式為滾動形式tv_bbs.setMovementMethod(new ScrollingMovementMethod()); } private String[] mChatStr = {'你吃飯了嗎?', '今天天氣真好呀。', '我中獎啦!', '我們去看電影吧', '晚上干什么好呢?',}; @Override public void onClick(View v) {if (v.getId() == R.id.tv_control || v.getId() == R.id.tv_bbs) { // 生成一個0到4之間的隨機數 int random = (int) (Math.random() * 10) % 5; // 拼接聊天的文本內容 String newStr = String.format('%sn%s %s', tv_bbs.getText().toString(), DateUtil.getNowTime(), mChatStr[random]); // 設置文本視圖tv_bbs的文本內容 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'> <!-- 這是普通的文本視圖 --> <TextViewandroid: android:layout_width='match_parent'android:layout_height='wrap_content'android:layout_marginTop='20dp'android:gravity='center'android:text='聊天室效果,點擊添加聊天記錄,長按刪除聊天記錄' /> <LinearLayoutandroid:layout_width='match_parent'android:layout_height='200dp'android:orientation='vertical'> <!-- 這是聊天室的文本視圖,scrollbars屬性設置為vertical表示在垂直方向上顯示滾動條 --><TextView android: 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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
1. React+umi+typeScript創建項目的過程2. ASP調用WebService轉化成JSON數據,附json.min.asp3. php測試程序運行速度和頁面執行速度的代碼4. php網絡安全中命令執行漏洞的產生及本質探究5. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執行過程解析6. 無線標記語言(WML)基礎之WMLScript 基礎第1/2頁7. Warning: require(): open_basedir restriction in effect,目錄配置open_basedir報錯問題分析8. ASP中常用的22個FSO文件操作函數整理9. SharePoint Server 2019新特性介紹10. 三個不常見的 HTML5 實用新特性簡介
