一种密码锁的实现

本文介绍了在EditTestActivity中实现密码锁的一种方法,主要利用TextWatcher类进行实时文字监听。当输入文本发生改变时,TextWatcher的beforeTextChanged、onTextChanged和afterTextChanged方法会被调用,分别处理变化前、变化中和变化后的文本状态。此外,还展示了密码锁页面的布局效果。
摘要由CSDN通过智能技术生成

EditTestActivity中的设置

主要是通过调用一个观察者的类
new TextWatcher(),使用这个类的时候要去实现它的三个方法

public void beforeTextChanged(CharSequence s, int start,
                                  int count, int after);
    public void onTextChanged(CharSequence s, int start, int before, int count);
    public void afterTextChanged(Editable s);

从函数名就可以知道其意思,每当敲击键盘编辑框的文字改变时,上面的三个函数都会执行,beforeTextChanged可以给出变化之前的内容,onTextChanged和afterTextChanged给出追加上新的字符之后的文本;

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;

import com.m520it.com.testintents.R;

/**
 * @author Holly
 * @time 2017/4/6  11:32
 * @desc ${TODD}
 */
public class EditTestActivity extends AppCompatActivity {
   
    private TextWatcher tw;
    private EditText pass1;
    private EditText pass2;
    private EditText pass3;
    <
以下是一个简单的Unity鼠标拖动密码锁的示例: 1. 创建一个空的GameObject,并将其命名为“密码锁”(PasswordLock)。 2. 将密码锁的Transform组件的位置(Position)设置为(0,0,0),并将其缩放(Scale)设置为(1,1,1)。 3. 在密码锁下创建一个空的GameObject,并将其命名为“锁柄”(Handle)。 4. 将锁柄的Transform组件的位置设置为(0,0.5,0),并将其缩放设置为(0.5,0.5,0.5)。 5. 在锁柄下创建一个Cube游戏对象,并将其命名为“锁柄杆”(HandleBar)。 6. 将锁柄杆的Transform组件的缩放设置为(0.1,1,0.1)。 7. 在密码锁下创建一个空的GameObject,并将其命名为“密码盘”(Dial)。 8. 将密码盘的Transform组件的位置设置为(0,-0.5,0),并将其缩放设置为(0.8,0.8,0.8)。 9. 在密码盘下创建10个空的GameObject,并将它们命名为“数字1”、“数字2”、“数字3”……“数字0”。 10. 将每个数字的Transform组件的位置设置为以密码盘为心的圆形,将其缩放设置为(0.5,0.5,0.5),并将其旋转设置为(0,0,数字在密码盘上的角度)。 11. 在每个数字对象下创建一个TextMeshPro组件,用于显示数字。 12. 在密码锁上创建一个C#脚本,并将其命名为“密码锁脚本”(PasswordLockScript)。 13. 在密码锁脚本添加以下代码: ``` public Transform dial; public float sensitivity = 10f; private float currentRotation = 0f; void Update() { if (Input.GetMouseButton(0)) { float delta = Input.GetAxis("Mouse X") * sensitivity; currentRotation += delta; dial.rotation = Quaternion.Euler(0f, currentRotation, 0f); } } ``` 这段代码将鼠标拖动密码盘进行旋转,并将旋转角度存储在currentRotation变量。 14. 在每个数字对象上创建一个C#脚本,并将其命名为“数字脚本”(NumberScript)。 15. 在数字脚本添加以下代码: ``` public int number; private void OnMouseDown() { Debug.Log("Clicked on number " + number); } ``` 这段代码将在数字对象被点击时输出数字到控制台。 16. 在每个数字对象上添加一个BoxCollider组件,用于检测鼠标点击事件。 现在,您可以在场景视图拖动密码锁的密码盘,并通过点击数字来完成密码锁的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值