AndroidテキストビューTextViewはチャットルームの効果を実現します。


本論文の例では、AndroidテキストビューTextViewのチャットルームを実現するための具体的なコードを共有します。
Math.random()乱数を生成する範囲は0から1の間です。
日付時間フォーマットnew SimpleDateFormat("dd-M-yyyyy 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 implements
        View.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("%s
%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; } }
ラyout

<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="     ,        ,        " />
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:orientation="vertical">
 
        <!--           ,scrollbars     vertical              -->
        <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());
    }
 
}
レスリング

以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。