Android 长按时启用编辑文本(或按钮)
在我的应用程序EditText中,有一个是禁用的,我想在此EditText上实现长按选项(同时禁用模式),启用它并允许从软键输入字符 例如:- 假设最初我允许用户在编辑文本中输入一些数字。经过一些操作后,我需要禁用此EditText。同样,如果用户想要更改之前在editText中输入的号码,则首先需要长按此editText。 长按此editText后,editText将启用,用户将能够再次更改或重新键入号码。在更改editText中的数字之前,我需要执行一些操作,在操作过程中,用户没有任何选项更改editText中的数字 代码:-Android 长按时启用编辑文本(或按钮),android,android-edittext,android-button,Android,Android Edittext,Android Button,在我的应用程序EditText中,有一个是禁用的,我想在此EditText上实现长按选项(同时禁用模式),启用它并允许从软键输入字符 例如:- 假设最初我允许用户在编辑文本中输入一些数字。经过一些操作后,我需要禁用此EditText。同样,如果用户想要更改之前在editText中输入的号码,则首先需要长按此editText。 长按此editText后,editText将启用,用户将能够再次更改或重新键入号码。在更改editText中的数字之前,我需要执行一些操作,在操作过程中,用户没有任何选项更
<EditText
android:id="@+id/eTextBillNoFrmReturn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="2dp"
android:layout_weight="7"
android:clickable="true"
android:background="@drawable/custom_edit_text"
android:inputType="number" />
@Override
public boolean onLongClick(View v) {
// do some operation
return false;
}
@凌驾
仅长按公共布尔值(视图v){
//做些手术
返回false;
}
但此代码仅在启用EditText时有效。EditText禁用时长按无效。是否尝试替换
return false;
借
在您的
onlong单击(视图v)
方法上 使用切换按钮,它将完全适合您的情况
如果有人像我一样偶然发现这篇老文章,我想我会发布一个答案,因为我发现一些设置适合我的情况 OP正在寻求一种方法,使EditText函数看起来好像被禁用了,但仍然允许设置一个可以被调用的长单击侦听器 将编辑文本设置为不可聚焦,并将输入类型设置为无。输入类型设置为“无”将使光标在单击时不会出现,因此它看起来比仅可聚焦设置为false时闪烁一秒钟的光标要好一点 要在XML中执行此操作,请执行以下操作:
<EditText
android:id="@+id/txtYourEditTextID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:inputType="none" />
要执行OP想要的操作,您将实现一个长单击侦听器:
txtYourEditText.setOnLongClickListener(new View.OnLongClickListener {
@Override
public boolean onLongClick(View v) {
((EditText)v).setInputType(InputType.TYPE_CLASS_NUMBER);
v.setFocusable(true);
return true; //or return false if you do not want to consume the event
}
});
然后,无论您想再次禁用哪个操作,请调用
txtYourEditText.setFocusable(false);
txtYourEditText.setInputType(InputType.TYPE_NULL);
希望这能帮助那些试图做类似事情的人。@Colombet Josselyn。。。是的,我试过了,但没用。@Hardik。。。我知道若按钮被禁用,那个么我什么都做不了。但我是如何完成这项任务的。@VinitVikash试着去碰一下听众看看我对你帖子的评论我认为这应该是可能的,去碰一下听众看看这里你有什么解决办法吗?@Hardik。。。不,我没有找到解决办法。。你在这里提供的链接是按钮的问题。但就我而言,它是编辑文本。如果我将更改editText的背景,使其看起来像禁用,那么此时用户也可以输入文本it@SFN... 我不能用按钮或切换按钮替换EditText…因为在按钮中用户不能输入文本…实际上,在执行长按之前您所说的按钮将启用其rite,或者在btn单击后执行???
EditText txtYourEditText = (EditText)findViewById(R.id.txtYourEditTextID);
txtYourEditText.setFocusable(false);
txtYourEditText.setInputType(InputType.TYPE_NULL);
txtYourEditText.setOnLongClickListener(new View.OnLongClickListener {
@Override
public boolean onLongClick(View v) {
((EditText)v).setInputType(InputType.TYPE_CLASS_NUMBER);
v.setFocusable(true);
return true; //or return false if you do not want to consume the event
}
});
txtYourEditText.setFocusable(false);
txtYourEditText.setInputType(InputType.TYPE_NULL);