【问题标题】:Activate the delete key from the code [duplicate]从代码中激活删除键[重复]
【发布时间】:2018-01-13 20:50:59
【问题描述】:

我在 android studio 中有一个代码,在代码中我有一个 EditText

  <EditText
    android:background="#90fff7"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="50dp"
    android:layout_marginTop="90dp"
    android:maxLength="50"
    />

和按钮

       <Button
        android:background="@drawable/ic_if_delete"
        android:layout_gravity="fill"
        android:id="@+id/delete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="3"
        android:layout_row="0"

        />

我希望当我点击按钮时 - 单击删除键(来自默认键盘)的事件将激活。

例如,如果我点击编辑文本中的 my 按钮,第一个字母删除就像我点击默认键盘上的删除键一样

不要让我从字符串中删除最后一个字符,这不是我要找的,我只是寻找模拟按下删除键的方法

【问题讨论】:

    标签: java android android-layout android-studio android-xml


    【解决方案1】:

    您必须在编辑文本中操作文本

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int length = editText.getSelectionStart();
            if (length > 0) {
                editText.getText().delete(length - 1, length);
                edittext.setSelection(length-1);
            }
        }
    });
    

    【讨论】:

    • 我可以做到,但是我需要照顾 cursur 和它的复杂性,所以我没有。我需要我在第一次提问时说的话,谢谢
    • 然后你可以检查更新的答案
    • 我的意思是像cursur在字符串中间的情况,所以他需要可见并删除屏幕的一个字符,如果cursur在字符串末尾那么他需要不可见并从字符串中删除一个字符。诸如此类的事情我无法处理,只需模拟按下删除键就可以了
    • 明白了!!
    • 检查更新的答案
    【解决方案2】:

    android:id="@+id/btn_delete" 上的视图和android:id="@+id/edit_query" 之类的按钮提供ID

    在按钮上设置点击监听器

     final EditText editQuery = findViewById(R.id.edit_query);
        Button btnDelete = findViewById(R.id.btnDelete);
    
        btnDelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                editQuery.setText(""); // if want to clear all
    
                String value = editQuery.getText().toString();
    
                value=value.subString(0,value.length()-1);
                editQuery.setText(value);
            }
        });
    

    【讨论】:

    • 编辑文本为空怎么办??
    • 因为我想模拟按下删除键我不需要照顾这个但我需要知道如何模拟按下删除键
    猜你喜欢
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多